@Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); sieveRepositoryManagement = new SieveRepositoryManagement(); sieveRepositoryManagement.setSieveRepository(sieveRepository); }
@Override public void addActiveSieveScriptFromFile(String userName, String scriptName, String scriptPath) throws SieveRepositoryException { try (InputStream scriptFileAsStream = new FileInputStream(scriptPath)) { addActiveSieveScript(userName, scriptName, IOUtils.toString(scriptFileAsStream, StandardCharsets.UTF_8)); } catch (IOException e) { LOGGER.error("Error while reading sieve script from file {}", scriptPath, e); } } }
@Test public void importSieveScriptFileToRepositoryShouldStoreContentAndActivateScript() throws Exception { String userName = "user@domain"; String script = "user_script"; URL sieveResource = ClassLoader.getSystemResource("sieve/my_sieve"); User user = User.fromUsername(userName); ScriptName scriptName = new ScriptName(script); String sieveContent = IOUtils.toString(sieveResource, StandardCharsets.UTF_8); ScriptContent scriptContent = new ScriptContent(sieveContent); sieveRepositoryManagement.addActiveSieveScriptFromFile(userName, script, sieveResource.getFile()); verify(sieveRepository, times(1)).putScript(user, scriptName, scriptContent); verify(sieveRepository, times(1)).setActive(user, scriptName); }
@Test public void importSieveScriptFileToRepositoryShouldNotImportFileWithWrongPathToRepistory() throws Exception { String userName = "user@domain"; String script = "user_script"; URL sieveResource = ClassLoader.getSystemResource("sieve/my_sieve"); User user = User.fromUsername(userName); ScriptName scriptName = new ScriptName(script); String sieveContent = IOUtils.toString(sieveResource, StandardCharsets.UTF_8); ScriptContent scriptContent = new ScriptContent(sieveContent); sieveRepositoryManagement.addActiveSieveScriptFromFile(userName, script, "wrong_path/" + sieveResource.getFile()); verify(sieveRepository, times(0)).putScript(user, scriptName, scriptContent); verify(sieveRepository, times(0)).setActive(user, scriptName); } }