コード例 #1
0
ファイル: DataSourceTest.cs プロジェクト: citizenmatt/gallio
        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")));
            }
        }
コード例 #2
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.");
            }
        }