Thanks for that, good idea. I think I usually like the fine-grained choice of which property becomes bindable and which one doesn't, but in this case, for a unit test, you might be right that it's more expedient. Feel free to make the change if you wish. Cheers.
On 7 June 2015 at 18:33, Piotr Zarzycki <piotrzarzyck...@gmail.com> wrote: > Hi Mihai, > > You could mark VO classes as Bindable and all properties will be > automatically bindable. > > Piotr > > W dniu 2015-06-07 o 18:10, mih...@apache.org pisze: > >> Repository: flex-sdk >> Updated Branches: >> refs/heads/develop 11489c6e7 -> 94dd74615 >> >> >> FLEX-34852 >> Added unit test (actually moved the first function from >> ListCollectionView_FLEX_34837_Tests, as it's better suited for this ticket). >> Because the feature is not implemented, it currently fails. >> >> >> Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo >> Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/7cd1b3bc >> Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/7cd1b3bc >> Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/7cd1b3bc >> >> Branch: refs/heads/develop >> Commit: 7cd1b3bc69f11c6c9d88a65e0df9eae39a17afa3 >> Parents: 11489c6 >> Author: Mihai Chira <mih...@apache.org> >> Authored: Sun Jun 7 12:53:06 2015 +0200 >> Committer: Mihai Chira <mih...@apache.org> >> Committed: Sun Jun 7 12:53:06 2015 +0200 >> >> ---------------------------------------------------------------------- >> .../framework/tests/FLEX_34852_Tests.as | 129 >> +++++++++++++++++++ >> .../ListCollectionView_FLEX_34837_Tests.as | 18 --- >> 2 files changed, 129 insertions(+), 18 deletions(-) >> ---------------------------------------------------------------------- >> >> >> >> http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/7cd1b3bc/frameworks/projects/framework/tests/FLEX_34852_Tests.as >> ---------------------------------------------------------------------- >> diff --git a/frameworks/projects/framework/tests/FLEX_34852_Tests.as >> b/frameworks/projects/framework/tests/FLEX_34852_Tests.as >> new file mode 100644 >> index 0000000..3a66221 >> --- /dev/null >> +++ b/frameworks/projects/framework/tests/FLEX_34852_Tests.as >> @@ -0,0 +1,129 @@ >> >> +//////////////////////////////////////////////////////////////////////////////// >> +// >> +// Licensed to the Apache Software Foundation (ASF) under one or more >> +// contributor license agreements. See the NOTICE file distributed with >> +// this work for additional information regarding copyright ownership. >> +// The ASF licenses this file to You under the Apache License, Version >> 2.0 >> +// (the "License"); you may not use this file except in compliance with >> +// the License. You may obtain a copy of the License at >> +// >> +// http://www.apache.org/licenses/LICENSE-2.0 >> +// >> +// Unless required by applicable law or agreed to in writing, software >> +// distributed under the License is distributed on an "AS IS" BASIS, >> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >> implied. >> +// See the License for the specific language governing permissions and >> +// limitations under the License. >> +// >> >> +//////////////////////////////////////////////////////////////////////////////// >> + >> +package { >> + import mx.collections.ArrayList; >> + import mx.collections.IList; >> + import mx.collections.ListCollectionView; >> + import mx.collections.Sort; >> + import mx.collections.SortField; >> + >> + import org.flexunit.asserts.assertEquals; >> + >> + public class FLEX_34852_Tests { >> + private var _sut:ListCollectionView; >> + >> + [Before] >> + public function setUp():void >> + { >> + _sut = new ListCollectionView(new ArrayList()); >> + } >> + >> + [After] >> + public function tearDown():void >> + { >> + _sut = null; >> + } >> + >> + [Test] >> + public function >> test_simple_ascending_sort_by_complex_fields():void >> + { >> + //given >> + var from4To0:IList = generateVOs(5, true); >> + _sut.addAll(from4To0); //values["address.street"]: Street4, >> Street3, Street2, Street1, Street0 >> + >> + const sortByIndexAscending:Sort = new Sort(); >> + sortByIndexAscending.fields = [new >> SortField("address.street", false, false, false)]; >> + _sut.sort = sortByIndexAscending; >> + >> + //when >> + _sut.refresh(); //should be: Street0, Street1, Street2, >> Street3, Street4 >> + >> + //then >> + assertIndexesAre([0, 1, 2, 3, 4]); >> + } >> + >> + >> + >> + private function assertIndexesAre(indexes:Array):void >> + { >> + assertEquals(indexes.length, _sut.length); >> + >> + for(var i:int = 0; i < _sut.length; i++) >> + { >> + assertEquals(FLEX_34852_VO(_sut.getItemAt(i)).index, >> indexes[i]); >> + } >> + } >> + >> + >> + private static function generateVOs(no:int, reverse:Boolean = >> false):IList >> + { >> + return generateObjects(no, reverse, generateOneObject); >> + } >> + >> + private static function generateObjects(no:int, reverse:Boolean, >> generator:Function):IList >> + { >> + var result:Array = []; >> + for(var i:int = 0; i < no; i++) >> + { >> + result.push(generator(i)); >> + } >> + >> + if(reverse) >> + result.reverse(); >> + >> + return new ArrayList(result); >> + } >> + >> + private static function generateOneObject(i:Number):FLEX_34852_VO >> + { >> + return new FLEX_34852_VO(i, "Object"+i, "Street"+i); >> + } >> + } >> +} >> + >> +class FLEX_34852_VO >> +{ >> + [Bindable] >> + public var name:String; >> + >> + [Bindable] >> + public var address:FLEX_34852_AddressVO; >> + >> + [Bindable] >> + public var index:Number; >> + >> + public function FLEX_34852_VO(index:Number, namePrefix:String, >> streetPrefix:String) >> + { >> + this.index = index; >> + this.name = namePrefix + index; >> + this.address = new FLEX_34852_AddressVO(streetPrefix + index); >> + } >> +} >> + >> +class FLEX_34852_AddressVO >> +{ >> + [Bindable] >> + public var street:String; >> + >> + public function FLEX_34852_AddressVO(street:String) >> + { >> + this.street = street; >> + } >> +} >> \ No newline at end of file >> >> >> http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/7cd1b3bc/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 f11e906..ae8f746 100644 >> --- >> a/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as >> +++ >> b/frameworks/projects/framework/tests/ListCollectionView_FLEX_34837_Tests.as >> @@ -43,24 +43,6 @@ package { >> } >> [Test] >> - public function >> test_simple_ascending_sort_by_complex_fields():void >> - { >> - //given >> - var from4To0:IList = generateVOs(5, true); >> - _sut.addAll(from4To0); //values["address.street"]: Street4, >> Street3, Street2, Street1, Street0 >> - >> - const sortByIndexAscending:Sort = new Sort(); >> - sortByIndexAscending.fields = [new >> SortField("address.street", false, false, false)]; >> - _sut.sort = sortByIndexAscending; >> - >> - //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():void >> { >> function compareByStreet(a:ListCollectionView_FLEX_34837_VO, >> b:ListCollectionView_FLEX_34837_VO, fields:Array):int >> >