|
@@ -13,8 +13,6 @@ import org.junit.jupiter.api.AfterEach;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.mock;
|
|
@@ -34,95 +32,91 @@ public class BaseCollectionTest {
|
|
logCaptor.clearLogs();
|
|
logCaptor.clearLogs();
|
|
}
|
|
}
|
|
|
|
|
|
- private void resolve(ConfigContainer... containers) {
|
|
|
|
- baseCollection.resolve(Arrays.asList(containers));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_includeFieldIfAnnotated() {
|
|
public void resolve_includeFieldIfAnnotated() {
|
|
- resolve(new ContainerWithEntry(), new ContainerWithContainerWithEntry(), new ContainerWithGroupWithEntry());
|
|
|
|
|
|
+ baseCollection.resolve(new ContainerWithEntry(), new ContainerWithContainerWithEntry(), new ContainerWithGroupWithEntry());
|
|
assertEquals(2, baseCollection.getEntries().size());
|
|
assertEquals(2, baseCollection.getEntries().size());
|
|
assertEquals(1, baseCollection.getCollections().size());
|
|
assertEquals(1, baseCollection.getCollections().size());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_excludeFieldIfNotAnnotated() {
|
|
public void resolve_excludeFieldIfNotAnnotated() {
|
|
- resolve(new ContainerWithField());
|
|
|
|
|
|
+ baseCollection.resolve(new ContainerWithField());
|
|
assertTrue(baseCollection.isEmpty());
|
|
assertTrue(baseCollection.isEmpty());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_includeFieldInEntries() {
|
|
public void resolve_includeFieldInEntries() {
|
|
- resolve(new EntriesContainerWithEntry());
|
|
|
|
|
|
+ baseCollection.resolve(new EntriesContainerWithEntry());
|
|
assertEquals(1, baseCollection.getEntries().size());
|
|
assertEquals(1, baseCollection.getEntries().size());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_excludeFieldInEntriesIfContainer() {
|
|
public void resolve_excludeFieldInEntriesIfContainer() {
|
|
- resolve(new EntriesContainerWithEmptyContainer());
|
|
|
|
|
|
+ baseCollection.resolve(new EntriesContainerWithEmptyContainer());
|
|
assertTrue(baseCollection.isEmpty());
|
|
assertTrue(baseCollection.isEmpty());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_excludeFieldInEntriesIfIgnoreAnnotated() {
|
|
public void resolve_excludeFieldInEntriesIfIgnoreAnnotated() {
|
|
- resolve(new EntriesContainerWithIgnoredField());
|
|
|
|
|
|
+ baseCollection.resolve(new EntriesContainerWithIgnoredField());
|
|
assertTrue(baseCollection.isEmpty());
|
|
assertTrue(baseCollection.isEmpty());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_excludeFieldInEntriesIfTransient() {
|
|
public void resolve_excludeFieldInEntriesIfTransient() {
|
|
- resolve(new EntriesContainerWithTransientField());
|
|
|
|
|
|
+ baseCollection.resolve(new EntriesContainerWithTransientField());
|
|
assertTrue(baseCollection.isEmpty());
|
|
assertTrue(baseCollection.isEmpty());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_includeSuperclassFieldIfNonStatic() {
|
|
public void resolve_includeSuperclassFieldIfNonStatic() {
|
|
- resolve(new SubclassOfContainerWithEntry(), new SubclassOfContainerWithContainerWithEntry());
|
|
|
|
|
|
+ baseCollection.resolve(new SubclassOfContainerWithEntry(), new SubclassOfContainerWithContainerWithEntry());
|
|
assertEquals(2, baseCollection.getEntries().size());
|
|
assertEquals(2, baseCollection.getEntries().size());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_excludeSuperclassFieldIfStatic() {
|
|
public void resolve_excludeSuperclassFieldIfStatic() {
|
|
- resolve(new SubclassOfContainerWithStaticEntry());
|
|
|
|
|
|
+ baseCollection.resolve(new SubclassOfContainerWithStaticEntry());
|
|
// TODO: Add container test
|
|
// TODO: Add container test
|
|
assertTrue(baseCollection.isEmpty());
|
|
assertTrue(baseCollection.isEmpty());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_includeFromMethod() {
|
|
public void resolve_includeFromMethod() {
|
|
- resolve(new ContainerIncludingContainerWithEntry(), new ContainerIncludingGroupWithEntry());
|
|
|
|
|
|
+ baseCollection.resolve(new ContainerIncludingContainerWithEntry(), new ContainerIncludingGroupWithEntry());
|
|
assertEquals(1, baseCollection.getEntries().size());
|
|
assertEquals(1, baseCollection.getEntries().size());
|
|
assertEquals(1, baseCollection.getCollections().size());
|
|
assertEquals(1, baseCollection.getCollections().size());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_includeNestedIfStatic() {
|
|
public void resolve_includeNestedIfStatic() {
|
|
- resolve(new ContainerNestingStaticContainerWithEntry());
|
|
|
|
|
|
+ baseCollection.resolve(new ContainerNestingStaticContainerWithEntry());
|
|
assertEquals(1, baseCollection.getEntries().size());
|
|
assertEquals(1, baseCollection.getEntries().size());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_throwIfNestedNonContainer() {
|
|
public void resolve_throwIfNestedNonContainer() {
|
|
- IllegalAnnotationTargetException exception = assertThrows(IllegalAnnotationTargetException.class, () -> resolve(new ContainerNestingStaticClass()));
|
|
|
|
|
|
+ IllegalAnnotationTargetException exception = assertThrows(IllegalAnnotationTargetException.class, () -> baseCollection.resolve(new ContainerNestingStaticClass()));
|
|
assertEquals("Transitive " + ContainerNestingStaticClass.Class.class + " must implement " + ConfigContainer.class.getSimpleName(), exception.getMessage());
|
|
assertEquals("Transitive " + ContainerNestingStaticClass.Class.class + " must implement " + ConfigContainer.class.getSimpleName(), exception.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_throwIfNestedNonStatic() {
|
|
public void resolve_throwIfNestedNonStatic() {
|
|
- IllegalAnnotationTargetException exception = assertThrows(IllegalAnnotationTargetException.class, () -> resolve(new ContainerNestingContainerWithEntry()));
|
|
|
|
|
|
+ IllegalAnnotationTargetException exception = assertThrows(IllegalAnnotationTargetException.class, () -> baseCollection.resolve(new ContainerNestingContainerWithEntry()));
|
|
assertEquals("Transitive " + ContainerNestingContainerWithEntry.ContainerWithEntry.class + " must be static", exception.getMessage());
|
|
assertEquals("Transitive " + ContainerNestingContainerWithEntry.ContainerWithEntry.class + " must be static", exception.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_logWarningIfEmpty() {
|
|
public void resolve_logWarningIfEmpty() {
|
|
- resolve(new EmptyGroup());
|
|
|
|
|
|
+ baseCollection.resolve(new EmptyGroup());
|
|
assertThat(logCaptor.getWarnLogs()).contains("[CompleteConfig] Group emptyGroup is empty");
|
|
assertThat(logCaptor.getWarnLogs()).contains("[CompleteConfig] Group emptyGroup is empty");
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void resolve_listenSetter() {
|
|
public void resolve_listenSetter() {
|
|
SetterListener listener = new SetterListener();
|
|
SetterListener listener = new SetterListener();
|
|
- resolve(listener);
|
|
|
|
|
|
+ baseCollection.resolve(listener);
|
|
boolean value = !listener.getValue();
|
|
boolean value = !listener.getValue();
|
|
Iterables.getOnlyElement(baseCollection.getEntries()).setValue(value);
|
|
Iterables.getOnlyElement(baseCollection.getEntries()).setValue(value);
|
|
assertEquals(value, listener.getValue());
|
|
assertEquals(value, listener.getValue());
|
|
@@ -131,7 +125,7 @@ public class BaseCollectionTest {
|
|
@Test
|
|
@Test
|
|
public void resolve_doNotUpdateListenerField() {
|
|
public void resolve_doNotUpdateListenerField() {
|
|
EmptyListener listener = new EmptyListener();
|
|
EmptyListener listener = new EmptyListener();
|
|
- resolve(listener);
|
|
|
|
|
|
+ baseCollection.resolve(listener);
|
|
boolean oldValue = listener.getValue();
|
|
boolean oldValue = listener.getValue();
|
|
Iterables.getOnlyElement(baseCollection.getEntries()).setValue(!oldValue);
|
|
Iterables.getOnlyElement(baseCollection.getEntries()).setValue(!oldValue);
|
|
assertEquals(oldValue, listener.getValue());
|
|
assertEquals(oldValue, listener.getValue());
|