public void CanSetupResultForSimpleForQuery()
        {
            DataTable customers;

            using (DataTableBuilder builder = new DataTableBuilder())
            {
                builder.AddColumn("userid", typeof(int))
                .AddColumn("email", typeof(string))
                .AddRow(1, "*****@*****.**")
                .AddRow(10, "*****@*****.**");

                customers = builder.DataTable;
            }

            var behavior = new MockCommandBehavior()
                           .When(c => c.CommandText.StartsWith("select *"))
                           .ReturnsData(customers);

            Factory.AddBehavior(behavior);

            var table = SUT.DataAccess.GetAllUsers();

            Assert.AreEqual(2, table.Rows.Count);
            Assert.AreEqual(1, table.Rows[0][0]);
            Assert.AreEqual("*****@*****.**", table.Rows[0][1]);
            Assert.AreEqual(10, table.Rows[1][0]);
            Assert.AreEqual("*****@*****.**", table.Rows[1][1]);
        }
        public object GetReturnValue <TReturn>(MockDbCommand cmd)
        {
            if (cmd is null)
            {
                throw new ArgumentNullException(nameof(cmd));
            }

            MockCommandBehavior behavior = FindBehavior(cmd);

            if (behavior is null)
            {
                return(default(TReturn));
            }

            object value = behavior.ReturnValue;

            if (value is Func <DbCommand, object> func)
            {
                return(func(cmd));
            }
            else if (value is TReturn @return)
            {
                return(@return);
            }
            else if (cmd.Parameters.Count > 0)
            {
                if (cmd.Parameters[0].Value is TReturn param_0)
                {
                    if ((object)param_0 is DataTable data)
                    {
                        data.Clear();
                    }

                    return(param_0);
                }
            }
            else
            {
#pragma warning disable IDE0034 // Simplify 'default' expression
                return(default(TReturn));

#pragma warning restore IDE0034 // Simplify 'default' expression
            }

            throw new NotSupportedException();
        }
Example #3
0
        public void CanSetupResultForSimpleForQuery()
        {
            var customers = new DataTableBuilder()
                .AddColumn("userid", typeof(Int32))
                .AddColumn("email", typeof(String))
                .AddRow(1, "*****@*****.**")
                .AddRow(10, "*****@*****.**").DataTable;

            var behavior = new MockCommandBehavior()
                .When(c=> c.CommandText.StartsWith("select *"))
                .ReturnsData(customers);
            Factory.AddBehavior(behavior);

            var table = SUT.DataAccess.GetAllUsers();
            Assert.AreEqual(2, table.Rows.Count);
            Assert.AreEqual(1, table.Rows[0][0]);
            Assert.AreEqual("*****@*****.**", table.Rows[0][1]);
            Assert.AreEqual(10, table.Rows[1][0]);
            Assert.AreEqual("*****@*****.**", table.Rows[1][1]);
        }
 public void AddBehavior(MockCommandBehavior behavior)
 {
     behaviors.Add(behavior);
 }
 public void AddBehavior(MockCommandBehavior behavior) => Provider.AddBehavior(behavior);