Example #1
0
        public void DeleteSomeRows_ValidParameter_DeleteCallTriggered()
        {
            // arrange
            var cut             = new DataBaseLayer();
            var myparameterList = new List <object>();
            var dbCommandMock   = CreateCommandMock(myparameterList);
            var paramValue      = "myTestString";

            // act: here the dependency injection happens (its called "method injection")
            cut.DeleteSomeRows_Refactored(dbCommandMock.Object, paramValue);

            // assert that parameters were assigned correctly
            var myExpectedParamName  = GetParamNameFromQuery(dbCommandMock.Object.CommandText);
            var myExpectedParamValue = paramValue;

            var myActualParamName  = ((IDbDataParameter)myparameterList[0]).ParameterName;
            var myActualParamValue = ((IDbDataParameter)myparameterList[0]).Value;

            Assert.AreEqual(myExpectedParamName, myActualParamName);
            Assert.AreEqual(myExpectedParamValue, myActualParamValue);

            // assert that query was executed
            dbCommandMock.Verify(foo => foo.ExecuteNonQuery(), Times.Exactly(1));
        }