public void CanBindAppliesIndexAliasTranslation() { IDataSet dataSet = Mocks.StrictMock <IDataSet>(); using (Mocks.Record()) { SetupResult.For(dataSet.ColumnCount).Return(2); Expect.Call(dataSet.CanBind(null)).IgnoreArguments().Do((CanBindDelegate) delegate(DataBinding binding) { Assert.AreEqual("translatedPath", binding.Path); Assert.AreEqual(2, binding.Index); return(true); }); Expect.Call(dataSet.CanBind(null)).IgnoreArguments().Do((CanBindDelegate) delegate(DataBinding binding) { Assert.AreEqual("untranslatedPath", binding.Path); Assert.AreEqual(5, binding.Index); return(false); }); } using (Mocks.Playback()) { DataSource source = new DataSource("theName"); source.AddIndexAlias("translatedPath", 2); source.AddDataSet(dataSet); Assert.IsTrue(source.CanBind(new DataBinding(5, "translatedPath"))); Assert.IsFalse(source.CanBind(new DataBinding(5, "untranslatedPath"))); } }
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."); } }