public void SplitValuesForComparison()
        {
            var dateTime1 = new DateTime(2011, 7, 18);
            var dateTime2 = new DateTime(2012, 8, 19);

            var row1 = new ColumnValueTable.Row(new object[] { "2011" });
            var row2 = new ColumnValueTable.Row(new object[] { "2012" });
            var row3 = new ColumnValueTable.Row(new object[] { "7" });
            var row4 = new ColumnValueTable.Row(new object[] { "8" });
            var row5 = new ColumnValueTable.Row(new object[] { "18" });
            var row6 = new ColumnValueTable.Row(new object[] { "19" });

            _property1Stub
            .Stub(stub => stub.SplitValuesForComparison(Arg <IEnumerable <object> > .List.Equal(new object[] { 2011, 2012 })))
            .Return(new ColumnValueTable(new[] { _columnDefinition1 }, new[] { row1, row2 }));
            _property2Stub
            .Stub(stub => stub.SplitValuesForComparison(Arg <IEnumerable <object> > .List.Equal(new object[] { 7, 8 })))
            .Return(new ColumnValueTable(new[] { _columnDefinition2 }, new[] { row3, row4 }));
            _property3Stub
            .Stub(stub => stub.SplitValuesForComparison(Arg <IEnumerable <object> > .List.Equal(new object[] { 18, 19 })))
            .Return(new ColumnValueTable(new[] { _columnDefinition3 }, new[] { row5, row6 }));

            var result = _compoundStoragePropertyDefinition.SplitValuesForComparison(new object[] { dateTime1, dateTime2 });

            var expectedTable = new ColumnValueTable(
                new[] { _columnDefinition1, _columnDefinition2, _columnDefinition3 },
                new[]
            {
                new ColumnValueTable.Row(new object[] { "2011", "7", "18" }),
                new ColumnValueTable.Row(new object[] { "2012", "8", "19" })
            });

            ColumnValueTableTestHelper.CheckTable(expectedTable, result);
        }
        public void Row_Concat()
        {
            var row1 = new ColumnValueTable.Row(new[] { "a", "b" });
            var row2 = new ColumnValueTable.Row(new[] { "c", "d" });

            var result = row1.Concat(row2);

            Assert.That(result.Values, Is.EqualTo(new[] { "a", "b", "c", "d" }));
        }
        public void SplitValuesForComparison()
        {
            var row1             = new ColumnValueTable.Row(new[] { "1" });
            var row2             = new ColumnValueTable.Row(new[] { "2" });
            var columnValueTable = new ColumnValueTable(new[] { _columnDefinition }, new[] { row1, row2 });

            _serializedIDPropertyStub
            .Stub(stub => stub.SplitValuesForComparison(Arg <IEnumerable <object> > .List.Equal(
                                                            new[] { DomainObjectIDs.Order1.ToString(), DomainObjectIDs.Order3.ToString() })))
            .Return(columnValueTable);

            var result = _serializedObjectIDStoragePropertyDefinition.SplitValuesForComparison(new object[] { DomainObjectIDs.Order1, DomainObjectIDs.Order3 });

            ColumnValueTableTestHelper.CheckTable(columnValueTable, result);
        }
        public void SplitValuesForComparison_NullValue()
        {
            var row1             = new ColumnValueTable.Row(new[] { "1" });
            var row2             = new ColumnValueTable.Row(new[] { "2" });
            var columnValueTable = new ColumnValueTable(new[] { _columnDefinition }, new[] { row1, row2 });

            // Bug in Rhino Mocks: List.Equal constraint cannot handle nulls within the sequence
            _serializedIDPropertyStub
            .Stub(stub => stub.SplitValuesForComparison(
                      Arg <IEnumerable <object> > .Matches(seq => seq.SequenceEqual(new[] { null, DomainObjectIDs.Order3.ToString() }))))
            .Return(columnValueTable);

            var result = _serializedObjectIDStoragePropertyDefinition.SplitValuesForComparison(new object[] { null, DomainObjectIDs.Order3 });

            ColumnValueTableTestHelper.CheckTable(columnValueTable, result);
        }