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)); } }
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); } }
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."); } }
public void StrategySetThenGet() { MergedDataSet dataSet = new MergedDataSet(); dataSet.Strategy = UnionMergeStrategy.Instance; Assert.AreSame(UnionMergeStrategy.Instance, dataSet.Strategy); }
public void AddingDataSetThatIsAlreadyAddedThrows() { MergedDataSet dataSet = new MergedDataSet(); IDataSet dataSetToAdd = Mocks.Stub <IDataSet>(); dataSet.AddDataSet(dataSetToAdd); dataSet.AddDataSet(dataSetToAdd); }
public void AddingDataSetWithNullArgumentThrows() { MergedDataSet dataSet = new MergedDataSet(); dataSet.AddDataSet(null); }
public void StrategySetterThrowsIfValueIsNull() { MergedDataSet dataSet = new MergedDataSet(); dataSet.Strategy = null; }
public void DefaultStrategyIsConcatenation() { MergedDataSet dataSet = new MergedDataSet(); Assert.AreSame(ConcatenationMergeStrategy.Instance, dataSet.Strategy); }