Exemplo n.º 1
0
        public void GetItemsDelegatesToTheStrategy()
        {
            MergedDataSet dataSet = new MergedDataSet();

            IDataSet provider = Mocks.Stub <IDataSet>();

            dataSet.AddDataSet(provider);

            IMergeStrategy strategy = Mocks.StrictMock <IMergeStrategy>();

            dataSet.Strategy = strategy;

            IEnumerable <IDataItem> results = Mocks.Stub <IEnumerable <IDataItem> >();

            DataBinding[] bindings = new DataBinding[0];

            using (Mocks.Record())
            {
                Expect.Call(strategy.Merge(null, null, false)).IgnoreArguments().Do((MergeDelegate) delegate(IList <IDataProvider> mergeProviders, ICollection <DataBinding> mergeBindings,
                                                                                                             bool includeDynamicItems)
                {
                    Assert.IsTrue(includeDynamicItems);

                    Assert.AreElementsEqual(new IDataProvider[] { provider }, mergeProviders);
                    Assert.AreSame(bindings, mergeBindings);
                    return(results);
                });
            }

            using (Mocks.Playback())
            {
                Assert.AreSame(results, dataSet.GetItems(bindings, true));
            }
        }
Exemplo n.º 2
0
        public void AddingDataSetsUpdatesTheColumnCountAndDataSetsCollection()
        {
            MergedDataSet dataSet = new MergedDataSet();

            IDataSet dataSetWithTwoColumns   = Mocks.StrictMock <IDataSet>();
            IDataSet dataSetWithThreeColumns = Mocks.StrictMock <IDataSet>();

            using (Mocks.Record())
            {
                SetupResult.For(dataSetWithTwoColumns.ColumnCount).Return(2);

                SetupResult.For(dataSetWithThreeColumns.ColumnCount).Return(3);
            }

            using (Mocks.Playback())
            {
                Assert.AreEqual(0, dataSet.ColumnCount);
                Assert.AreElementsEqual(new IDataSet[] { }, dataSet.DataSets);

                dataSet.AddDataSet(dataSetWithTwoColumns);

                Assert.AreEqual(2, dataSet.ColumnCount);
                Assert.AreElementsEqual(new IDataSet[] { dataSetWithTwoColumns }, dataSet.DataSets);

                dataSet.AddDataSet(dataSetWithThreeColumns);

                Assert.AreEqual(3, dataSet.ColumnCount);
                Assert.AreElementsEqual(new IDataSet[] { dataSetWithTwoColumns, dataSetWithThreeColumns }, dataSet.DataSets);
            }
        }
Exemplo n.º 3
0
        public void CanBindReturnsTrueOnlyIfAllDataSetsCanSatisfyTheBinding()
        {
            MergedDataSet dataSet = new MergedDataSet();
            DataBinding   binding = new DataBinding(0, null);

            IDataSet dataSetWithTwoColumns   = Mocks.StrictMock <IDataSet>();
            IDataSet dataSetWithThreeColumns = Mocks.StrictMock <IDataSet>();

            using (Mocks.Record())
            {
                SetupResult.For(dataSetWithTwoColumns.ColumnCount).Return(2);
                Expect.Call(dataSetWithTwoColumns.CanBind(binding)).Repeat.Twice().Return(true);

                SetupResult.For(dataSetWithThreeColumns.ColumnCount).Return(3);
                Expect.Call(dataSetWithThreeColumns.CanBind(binding)).Return(false);
            }

            using (Mocks.Playback())
            {
                Assert.IsTrue(dataSet.CanBind(binding), "Can always bind if there are no data sets.");

                dataSet.AddDataSet(dataSetWithTwoColumns);
                Assert.IsTrue(dataSet.CanBind(binding), "Can bind because only data set can bind.");

                dataSet.AddDataSet(dataSetWithThreeColumns);
                Assert.IsFalse(dataSet.CanBind(binding), "Cannot bind because one of the data sets cannot bind.");
            }
        }
Exemplo n.º 4
0
        public void StrategySetThenGet()
        {
            MergedDataSet dataSet = new MergedDataSet();

            dataSet.Strategy = UnionMergeStrategy.Instance;

            Assert.AreSame(UnionMergeStrategy.Instance, dataSet.Strategy);
        }
Exemplo n.º 5
0
        public void AddingDataSetThatIsAlreadyAddedThrows()
        {
            MergedDataSet dataSet = new MergedDataSet();

            IDataSet dataSetToAdd = Mocks.Stub <IDataSet>();

            dataSet.AddDataSet(dataSetToAdd);

            dataSet.AddDataSet(dataSetToAdd);
        }
Exemplo n.º 6
0
        public void AddingDataSetWithNullArgumentThrows()
        {
            MergedDataSet dataSet = new MergedDataSet();

            dataSet.AddDataSet(null);
        }
Exemplo n.º 7
0
        public void StrategySetterThrowsIfValueIsNull()
        {
            MergedDataSet dataSet = new MergedDataSet();

            dataSet.Strategy = null;
        }
Exemplo n.º 8
0
        public void DefaultStrategyIsConcatenation()
        {
            MergedDataSet dataSet = new MergedDataSet();

            Assert.AreSame(ConcatenationMergeStrategy.Instance, dataSet.Strategy);
        }