11package com .github .jonpereiradev .diffobjects .strategy ;
22
3- import com .github .jonpereiradev .diffobjects .DiffResult ;
43import com .github .jonpereiradev .diffobjects .ComplexElement ;
4+ import com .github .jonpereiradev .diffobjects .DiffResult ;
55import com .github .jonpereiradev .diffobjects .ObjectElement ;
66import org .junit .Assert ;
77import org .junit .Before ;
@@ -14,13 +14,16 @@ public class DiffCollectionStrategyTest extends BaseStrategyTest {
1414
1515 private DiffStrategy diffStrategy ;
1616 private DiffMetadata diffMetadata ;
17+ private DiffMetadata diffMetadataByName ;
1718
1819 @ Before
1920 public void beforeTest () {
2021 diffStrategy = DiffStrategyType .COLLECTION .getStrategy ();
21- diffMetadata = discoverByName (ComplexElement .class ,"getObjectElementList" );
22+ diffMetadata = discoverByName (ComplexElement .class , "getObjectElementList" );
23+ diffMetadataByName = discoverByName (ComplexElement .class , "getObjectElementListByName" );
2224 Assert .assertNotNull (diffStrategy );
2325 Assert .assertNotNull (diffMetadata );
26+ Assert .assertNotNull (diffMetadataByName );
2427 }
2528
2629 @ Test
@@ -93,7 +96,7 @@ public void testCollectionStrategyDifferentObjectsDifferentSizeList() {
9396 DiffResult <List <ObjectElement >> diffResult = diffStrategy .diff (complexA , complexB , diffMetadata );
9497
9598 Assert .assertNotNull (diffResult );
96- Assert .assertTrue (diffResult .isEquals ());
99+ Assert .assertFalse (diffResult .isEquals ());
97100 Assert .assertNotNull (diffResult .getBefore ());
98101 Assert .assertNotNull (diffResult .getAfter ());
99102 Assert .assertTrue (diffResult .getBefore ().size () == 1 );
@@ -114,12 +117,73 @@ public void testCollectionStrategyDifferentObjectsSameSizeList() {
114117 DiffResult <List <ObjectElement >> diffResult = diffStrategy .diff (complexA , complexB , diffMetadata );
115118
116119 Assert .assertNotNull (diffResult );
117- Assert .assertTrue (diffResult .isEquals ());
120+ Assert .assertFalse (diffResult .isEquals ());
118121 Assert .assertNotNull (diffResult .getBefore ());
119122 Assert .assertNotNull (diffResult .getAfter ());
120123 Assert .assertTrue (diffResult .getBefore ().size () == 1 );
121124 Assert .assertEquals ("Object A.A" , diffResult .getBefore ().get (0 ).getName ());
122125 Assert .assertTrue (diffResult .getAfter ().size () == 1 );
123126 Assert .assertEquals ("Object B.A" , diffResult .getAfter ().get (0 ).getName ());
124127 }
128+
129+ @ Test
130+ public void testCollectionStrategySameObjectsSameSizeList () {
131+ ComplexElement complexA = new ComplexElement (new ArrayList <ObjectElement >());
132+ ComplexElement complexB = new ComplexElement (new ArrayList <ObjectElement >());
133+ ObjectElement objectElement = new ObjectElement ("Object" );
134+
135+ complexA .getObjectElementList ().add (objectElement );
136+ complexB .getObjectElementList ().add (objectElement );
137+
138+ DiffResult <List <ObjectElement >> diffResult = diffStrategy .diff (complexA , complexB , diffMetadata );
139+
140+ Assert .assertNotNull (diffResult );
141+ Assert .assertTrue (diffResult .isEquals ());
142+ Assert .assertNotNull (diffResult .getBefore ());
143+ Assert .assertNotNull (diffResult .getAfter ());
144+ Assert .assertTrue (diffResult .getBefore ().size () == 1 );
145+ Assert .assertEquals ("Object" , diffResult .getBefore ().get (0 ).getName ());
146+ Assert .assertTrue (diffResult .getAfter ().size () == 1 );
147+ Assert .assertEquals ("Object" , diffResult .getAfter ().get (0 ).getName ());
148+ }
149+
150+ @ Test
151+ public void testCollectionStrategySameObjectsByNameSameSizeList () {
152+ ComplexElement complexA = new ComplexElement (new ArrayList <ObjectElement >());
153+ ComplexElement complexB = new ComplexElement (new ArrayList <ObjectElement >());
154+
155+ complexA .getObjectElementListByName ().add (new ObjectElement ("Object" ));
156+ complexB .getObjectElementListByName ().add (new ObjectElement ("Object" ));
157+
158+ DiffResult <List <ObjectElement >> diffResult = diffStrategy .diff (complexA , complexB , diffMetadataByName );
159+
160+ Assert .assertNotNull (diffResult );
161+ Assert .assertTrue (diffResult .isEquals ());
162+ Assert .assertNotNull (diffResult .getBefore ());
163+ Assert .assertNotNull (diffResult .getAfter ());
164+ Assert .assertTrue (diffResult .getBefore ().size () == 1 );
165+ Assert .assertEquals ("Object" , diffResult .getBefore ().get (0 ).getName ());
166+ Assert .assertTrue (diffResult .getAfter ().size () == 1 );
167+ Assert .assertEquals ("Object" , diffResult .getAfter ().get (0 ).getName ());
168+ }
169+
170+ @ Test
171+ public void testCollectionStrategyDifferentObjectsByNameSameSizeList () {
172+ ComplexElement complexA = new ComplexElement (new ArrayList <ObjectElement >());
173+ ComplexElement complexB = new ComplexElement (new ArrayList <ObjectElement >());
174+
175+ complexA .getObjectElementListByName ().add (new ObjectElement ("Object A" ));
176+ complexB .getObjectElementListByName ().add (new ObjectElement ("Object B" ));
177+
178+ DiffResult <List <ObjectElement >> diffResult = diffStrategy .diff (complexA , complexB , diffMetadataByName );
179+
180+ Assert .assertNotNull (diffResult );
181+ Assert .assertFalse (diffResult .isEquals ());
182+ Assert .assertNotNull (diffResult .getBefore ());
183+ Assert .assertNotNull (diffResult .getAfter ());
184+ Assert .assertTrue (diffResult .getBefore ().size () == 1 );
185+ Assert .assertEquals ("Object A" , diffResult .getBefore ().get (0 ).getName ());
186+ Assert .assertTrue (diffResult .getAfter ().size () == 1 );
187+ Assert .assertEquals ("Object B" , diffResult .getAfter ().get (0 ).getName ());
188+ }
125189}
0 commit comments