diff --git a/data/src/test/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProviderTest.java b/data/src/test/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProviderTest.java index d51e5326..a04d7436 100644 --- a/data/src/test/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProviderTest.java +++ b/data/src/test/java/org/cryptomator/data/cloud/crypto/MasterkeyCryptoCloudProviderTest.java @@ -37,6 +37,7 @@ class MasterkeyCryptoCloudProviderTest { private CloudContentRepository cloudContentRepository; private CryptoCloudContentRepositoryFactory cryptoCloudContentRepositoryFactory; private Vault vault; + private VaultConfig.VaultConfigBuilder vaultConfigBuilder; private Cryptor cryptor; private FileNameCryptor fileNameCryptor; @@ -45,12 +46,13 @@ class MasterkeyCryptoCloudProviderTest { private MasterkeyCryptoCloudProvider inTest; @BeforeEach - void setUp() { + public void setUp() { context = Mockito.mock(Context.class); cloud = Mockito.mock(Cloud.class); cloudContentRepository = Mockito.mock(CloudContentRepository.class); cryptoCloudContentRepositoryFactory = Mockito.mock(CryptoCloudContentRepositoryFactory.class); vault = Mockito.mock(Vault.class); + vaultConfigBuilder = VaultConfig.createVaultConfig().id(""); cryptor = Mockito.mock(Cryptor.class); fileNameCryptor = Mockito.mock(FileNameCryptor.class); @@ -68,6 +70,7 @@ class MasterkeyCryptoCloudProviderTest { @DisplayName("create(\"/foo, foo\")") public void testCreateVault() throws BackendException { String masterkey = "{ \"version\": 999, \"scryptSalt\": \"AAAAAAAAAAA=\", \"scryptCostParam\": 32768, \"scryptBlockSize\": 8, \"primaryMasterKey\": \"D2kc+xBoAcVY+M7s74YBEy6l7ga2+Nz+HS5o0TQY3JMW1uQ5jTlLIQ==\", \"hmacMasterKey\": \"D2kc+xBoAcVY+M7s74YBEy6l7ga2+Nz+HS5o0TQY3JMW1uQ5jTlLIQ==\", \"versionMac\": \"trDKXqDhu94/VPuoWaQGBm8hwSPYc0D9t6DRRxKZ65k=\"}"; + String vaultConfig = "eyJraWQiOiJtYXN0ZXJrZXlmaWxlOm1hc3RlcmtleS5jcnlwdG9tYXRvciIsImFsZyI6IkhTNTEyIn0.eyJtYXhGaWxlbmFtZUxlbiI6MjIwLCJmb3JtYXQiOjgsImNpcGhlckNvbWJvIjoiU0lWX0NUUk1BQyJ9.umiAcGObWuVISugrQu16hznDHIFM7moD1ukA1r5V1DRA0GjHQk1p6S9hkL0PaMD7xl04jSttMRalOYU1sg4wqQ"; TestFolder rootFolder = new RootTestFolder(cloud); TestFolder foo = new TestFolder(rootFolder, "foo", "/foo"); @@ -85,11 +88,15 @@ class MasterkeyCryptoCloudProviderTest { return invocationOnMock.getArgument(0); }); + // 2. initialize vault + Mockito.when(cloudContentRepository.write(Mockito.eq(vaultFile), Mockito.any(DataSource.class), Mockito.eq(NO_OP_PROGRESS_AWARE), Mockito.eq(false), Mockito.anyLong())).thenAnswer(invocationOnMock -> { + DataSource in = invocationOnMock.getArgument(1); + String vaultConfigFileContent = new BufferedReader(new InputStreamReader(in.open(context), StandardCharsets.UTF_8)).lines().collect(Collectors.joining()); + assertThat(vaultConfigFileContent, is(vaultConfig)); + return invocationOnMock.getArgument(0); + }); - // 2. initialize vault: - Mockito.when(cloudContentRepository.write(Mockito.eq(vaultFile), Mockito.any(DataSource.class), Mockito.eq(NO_OP_PROGRESS_AWARE), Mockito.eq(false), Mockito.anyLong())).thenReturn(vaultFile); - - // 3. create root folder: + // 3. create root folder String rootDirHash = "KG6TFDGKXGZEGWRZOGTDFDF4YEGAZO6Q"; TestFolder dFolder = new TestFolder(foo, "d", "/foo/" + DATA_DIR_NAME); @@ -108,7 +115,7 @@ class MasterkeyCryptoCloudProviderTest { Mockito.when(cloudContentRepository.folder(lvl1Dir, lvl2Dir.getName())).thenReturn(lvl2Dir); Mockito.when(cloudContentRepository.create(lvl2Dir)).thenReturn(lvl2Dir); - inTest.create(foo, "foo"); + inTest.create(foo, "foo", vaultConfigBuilder); Mockito.verify(cloudContentRepository).write(Mockito.eq(masterKeyFile), Mockito.any(DataSource.class), Mockito.eq(NO_OP_PROGRESS_AWARE), Mockito.eq(false), Mockito.anyLong()); Mockito.verify(cloudContentRepository).write(Mockito.eq(vaultFile), Mockito.any(DataSource.class), Mockito.eq(NO_OP_PROGRESS_AWARE), Mockito.eq(false), Mockito.anyLong());