public void then_should_return_expected_result()
            {
                // given
                var database = new DatabaseStub { SingleResult = "Hello You" };

                // when
                string result = database.SingleStoredProcedure<string>("MySpName");

                // then
                result.ShouldEqual("Hello You");
            }
            public void then_should_not_have_any_arguements()
            {
                // given
                var database = new DatabaseStub();

                // when
                database.SingleStoredProcedure<string>("MySpName");

                // then
                Sql executedSql = database.SingleSql;
                executedSql.Arguments.ShouldBeEmpty();
            }
            public void then_should_return_expected_result()
            {
                // given
                var database = new DatabaseStub {
                    SingleResult = "Hello You"
                };

                // when
                string result = database.SingleStoredProcedure <string>("MySpName");

                // then
                result.ShouldEqual("Hello You");
            }
            public void then_should_not_have_any_arguements()
            {
                // given
                var database = new DatabaseStub();

                // when
                database.SingleStoredProcedure <string>("MySpName");

                // then
                Sql executedSql = database.SingleSql;

                executedSql.Arguments.ShouldBeEmpty();
            }
            public void then_should_call_sp_with_sp_name()
            {
                // given
                var database = new DatabaseStub();

                // when
                database.SingleStoredProcedure<string>("MySpName");

                // then
                Sql executedSql = database.SingleSql;
                executedSql.SQL.ShouldContain("EXEC");
                executedSql.SQL.ShouldContain("MySpName");
            }
            public void then_should_call_sp_with_sp_name()
            {
                // given
                var database = new DatabaseStub();

                // when
                database.SingleStoredProcedure <string>("MySpName");

                // then
                Sql executedSql = database.SingleSql;

                executedSql.SQL.ShouldContain("EXEC");
                executedSql.SQL.ShouldContain("MySpName");
            }
            public void then_should_include_paramter_in_sql()
            {
                // given
                var database = new DatabaseStub();

                // when
                database.SingleStoredProcedure<string>("MySpName", new Parameter("Param1", "Value"));

                // then
                Sql executedSql = database.SingleSql;
                executedSql.Arguments.ShouldNotBeEmpty();
                executedSql.Arguments.Any(x => x.Equals("Value")).ShouldBeTrue();

                executedSql.SQL.ShouldContain("Param1");
            }
            public void then_should_include_paramter_in_sql()
            {
                // given
                var database = new DatabaseStub();

                // when
                database.SingleStoredProcedure <string>("MySpName", new Parameter("Param1", "Value"));

                // then
                Sql executedSql = database.SingleSql;

                executedSql.Arguments.ShouldNotBeEmpty();
                executedSql.Arguments.Any(x => x.Equals("Value")).ShouldBeTrue();

                executedSql.SQL.ShouldContain("Param1");
            }