package co.codewizards.cloudstore.rest.server.ldap; import static org.assertj.core.api.Assertions.*; import net.jcip.annotations.NotThreadSafe; import org.junit.After; import org.junit.Before; import org.junit.Test; @NotThreadSafe public class DnTemplateCollectorTest { private DnTemplateCollector fetcher; private DnTemplatePropertyHelper helper; @Before public void setUp(){ fetcher = new DnTemplateCollector(); helper = new DnTemplatePropertyHelper(10); } @After public void cleanUp(){ helper.removePatterns(); } @Test public void when_templates_are_empty_then_return_empty_list(){ helper.setPatterns(); assertThat(fetcher.collect()).isEmpty(); } @Test public void when_there_is_one_template_then_return_it(){ String template = "cn=${login}+sn=secret, ou=users, dc=example, dc=com"; helper.setPatterns(template); assertThat(fetcher.collect()).containsExactly(template); } @Test public void when_first_template_is_empty_but_second_is_not_then_still_return_empty_list(){ String template = "cn=${login}+sn=secret, ou=users, dc=example, dc=com"; helper.setPatterns("", template); assertThat(fetcher.collect()).isEmpty(); } @Test public void when_the_are_multiple_templates_then_return_them_in_the_same_order(){ String template0 = "cn=${login}+sn=secret, ou=users, dc=example, dc=com"; String template1 = "cn=${login}+sn=secret, ou=customers, dc=example, dc=com"; String template2 = "cn=${login}+sn=secret, ou=users, dc=test, dc=com"; helper.setPatterns(template0, template1, template2); assertThat(fetcher.collect()).containsSequence(template0, template1, template2); } }