Example #1
0
// ReSharper disable InconsistentNaming
        public void AbstractDataBaseBroker_TestService_DbServiceIsNull_ThrowsArgumentNullException()
// ReSharper restore InconsistentNaming
        {
            //------------Setup for test--------------------------
            var broker = new TestDatabaseBroker();

            //------------Execute Test---------------------------

            broker.TestService(null);

            //------------Assert Results-------------------------
        }
Example #2
0
        public void AbstractDataBaseBroker_TestService_DbServiceWithNullSource_ThrowsArgumentNullException()

        {
            //------------Setup for test--------------------------
            var broker = new TestDatabaseBroker();

            var dbService = new DbService {
                Source = null
            };

            //------------Execute Test---------------------------

            broker.TestService(dbService);

            //------------Assert Results-------------------------
        }
Example #3
0
// ReSharper disable InconsistentNaming
        public void AbstractDataBaseBroker_TestService_InvokesDbServiceMethodInsideTransaction_Done()
// ReSharper restore InconsistentNaming
        {
            //------------Setup for test--------------------------
            var dbService = new DbService
            {
                Method = new ServiceMethod
                {
                    Name       = "TestMethod",
                    Parameters = new List <MethodParameter>
                    {
                        new MethodParameter {
                            Name = "Param1", TypeName = typeof(string).FullName, Value = "Hello"
                        },
                        new MethodParameter {
                            Name = "Param2", TypeName = typeof(int).FullName, Value = "99"
                        }
                    },
                    ExecuteAction = "BobTestMethod"
                }
            };

            var testServiceResults = new DataTable("TestTableName");

            testServiceResults.Columns.Add("Col1", typeof(int));
            testServiceResults.Columns.Add("Col2", typeof(string));
            testServiceResults.Rows.Add(new object[] { 1, "row1" });
            testServiceResults.Rows.Add(new object[] { 2, "row2" });
            testServiceResults.Rows.Add(new object[] { 3, null });

            IDbCommand fetchDataTableCommand = null;

            var dbServer = new Mock <TestDbServer>();

            dbServer.Setup(s => s.Connect(It.IsAny <string>())).Verifiable();
            dbServer.Setup(s => s.BeginTransaction()).Verifiable();
            dbServer.Setup(s => s.FetchDataTable(It.IsAny <IDbCommand>()))
            .Callback((IDbCommand command) => fetchDataTableCommand = command)
            .Returns(testServiceResults)
            .Verifiable();
            dbServer.Setup(s => s.RollbackTransaction()).Verifiable();
            dbServer.Setup(s => s.CreateCommand()).Returns(new SqlCommand());

            var broker = new TestDatabaseBroker(dbServer.Object);

            //------------Execute Test---------------------------
            var result = broker.TestService(dbService);

            //------------Assert Results-------------------------
            dbServer.Verify(s => s.Connect(It.IsAny <string>()));
            dbServer.Verify(s => s.BeginTransaction());
            dbServer.Verify(s => s.FetchDataTable(It.IsAny <IDbCommand>()));
            dbServer.Verify(s => s.RollbackTransaction());

            Assert.IsNotNull(fetchDataTableCommand);
            Assert.AreEqual("BobTestMethod", fetchDataTableCommand.CommandText);
            Assert.AreEqual(dbService.Method.Parameters.Count, fetchDataTableCommand.Parameters.Count);

            for (var i = 0; i < dbService.Method.Parameters.Count; i++)
            {
                var methodParam  = dbService.Method.Parameters[i];
                var commandParam = (IDbDataParameter)fetchDataTableCommand.Parameters[i];

                Assert.AreEqual("@" + methodParam.Name, commandParam.ParameterName);
                Assert.AreEqual(methodParam.Value, commandParam.Value);
                Assert.AreEqual(DbType.String, commandParam.DbType);
            }

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.DataSourceShapes);
            Assert.AreEqual(1, result.DataSourceShapes.Count);
            Assert.IsNotNull(result.DataSourceShapes[0]);
            Assert.AreEqual(2, result.DataSourceShapes[0].Paths.Count);

            Assert.AreEqual("TestTableName().Col1", result.DataSourceShapes[0].Paths[0].ActualPath);
            Assert.AreEqual("TestTableName().Col1", result.DataSourceShapes[0].Paths[0].DisplayPath);
            Assert.AreEqual("1__COMMA__2__COMMA__3", result.DataSourceShapes[0].Paths[0].SampleData);

            Assert.AreEqual("TestTableName().Col2", result.DataSourceShapes[0].Paths[1].ActualPath);
            Assert.AreEqual("TestTableName().Col2", result.DataSourceShapes[0].Paths[1].DisplayPath);
            Assert.AreEqual("row1__COMMA__row2__COMMA__", result.DataSourceShapes[0].Paths[1].SampleData);
        }