You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by mi...@apache.org on 2015/05/22 19:02:18 UTC

[06/10] git commit: [flex-sdk] [refs/heads/develop] - FLEX-34837 Added two more test functions to make sure that sorting with a custom compare function works well despite using a SortField with a complex field for its name. They do pass, indeed.

FLEX-34837 Added two more test functions to make sure that sorting with a custom compare function works well despite using a SortField with a complex field for its name. They do pass, indeed.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/4e62c7c7
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/4e62c7c7
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/4e62c7c7

Branch: refs/heads/develop
Commit: 4e62c7c7db69b196f38588d7e036c9352bf0d54f
Parents: d7272f3
Author: Mihai Chira <mi...@apache.org>
Authored: Fri May 22 13:38:54 2015 +0200
Committer: Mihai Chira <mi...@apache.org>
Committed: Fri May 22 18:19:51 2015 +0200

----------------------------------------------------------------------
 .../ListCollectionView_FLEX_34837_Tests.as      | 60 +++++++++++++++++++-
 1 file changed, 58 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/4e62c7c7/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as b/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as
index d069b90..2ebf97f 100644
--- a/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as
+++ b/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as
@@ -23,6 +23,7 @@ package {
     import mx.collections.ListCollectionView;
     import mx.collections.Sort;
     import mx.collections.SortField;
+    import mx.utils.ObjectUtil;
 
     import org.flexunit.asserts.assertEquals;
 
@@ -60,6 +61,61 @@ package {
         }
 
         [Test]
+        public function test_simple_sort_by_complex_fields_with_custom_compare_function_for_sort():void
+        {
+            function compareByStreet(a:ListCollectionView_FLEX_34837_VO, b:ListCollectionView_FLEX_34837_VO, fields:Array):int
+            {
+                var streetA:String = a.address ? a.address.street : null;
+                var streetB:String = b.address ? b.address.street : null;
+
+                return ObjectUtil.stringCompare(streetA, streetB, true);
+            }
+
+            //given
+            var from4To0:IList = generateVOs(5, true);
+            _sut.addAll(from4To0); //values["address.street"]: Street4, Street3, Street2, Street1, Street0
+
+            const sortByStreetAscending:Sort = new Sort();
+            sortByStreetAscending.fields = [new SortField("address.street", false, false, false)]; //should make no difference
+            sortByStreetAscending.compareFunction = compareByStreet;
+            _sut.sort = sortByStreetAscending;
+
+            //when
+            _sut.refresh(); //should be: Street0, Street1, Street2, Street3, Street4
+
+            //then
+            assertIndexesAre([0, 1, 2, 3, 4]);
+        }
+
+        [Test]
+        public function test_simple_sort_by_complex_fields_with_custom_compare_function_for_sort_field():void
+        {
+            function compareByStreet(a:ListCollectionView_FLEX_34837_VO, b:ListCollectionView_FLEX_34837_VO):int
+            {
+                var streetA:String = a.address ? a.address.street : null;
+                var streetB:String = b.address ? b.address.street : null;
+
+                return ObjectUtil.stringCompare(streetA, streetB, true);
+            }
+
+            //given
+            var from4To0:IList = generateVOs(5, true);
+            _sut.addAll(from4To0); //values["address.street"]: Street4, Street3, Street2, Street1, Street0
+
+            const sortByStreetAscending:Sort = new Sort();
+            var sortField:SortField = new SortField("address.street", false, false, false);
+            sortField.compareFunction = compareByStreet;
+            sortByStreetAscending.fields = [sortField];
+            _sut.sort = sortByStreetAscending;
+
+            //when
+            _sut.refresh(); //should be: Street0, Street1, Street2, Street3, Street4
+
+            //then
+            assertIndexesAre([0, 1, 2, 3, 4]);
+        }
+
+        [Test]
         public function test_changing_simple_sort_field_value_places_it_correctly_according_to_collection_sort():void
         {
             //given
@@ -68,7 +124,7 @@ package {
             _sut.addAll(from1To4);
 
             const sortByNameAscending:Sort = new Sort();
-            sortByNameAscending.fields = [new SortField("name", false, false)];
+            sortByNameAscending.fields = [new SortField("name", false, false, false)];
             _sut.sort = sortByNameAscending;
             _sut.refresh(); //values: Object1, Object2, Object3, Object4
 
@@ -91,7 +147,7 @@ package {
             _sut.addAll(from1To4);
 
             const sortByNameAscending:Sort = new Sort();
-            sortByNameAscending.fields = [new SortField("address.street", false, false)];
+            sortByNameAscending.fields = [new SortField("address.street", false, false, false)];
             _sut.sort = sortByNameAscending;
             _sut.refresh(); //values: Object1, Object2, Object3, Object4