Return-Path: X-Original-To: apmail-flex-commits-archive@www.apache.org Delivered-To: apmail-flex-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 958B1179DC for ; Fri, 22 May 2015 17:02:14 +0000 (UTC) Received: (qmail 97400 invoked by uid 500); 22 May 2015 17:02:14 -0000 Delivered-To: apmail-flex-commits-archive@flex.apache.org Received: (qmail 97334 invoked by uid 500); 22 May 2015 17:02:14 -0000 Mailing-List: contact commits-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list commits@flex.apache.org Received: (qmail 97083 invoked by uid 99); 22 May 2015 17:02:14 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 May 2015 17:02:14 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id D2473DFF16; Fri, 22 May 2015 17:02:13 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: mihaic@apache.org To: commits@flex.apache.org Date: Fri, 22 May 2015 17:02:18 -0000 Message-Id: <925b43a4d4ab445d834974af78609130@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [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 Authored: Fri May 22 13:38:54 2015 +0200 Committer: Mihai Chira 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