public void TheConnectionStringIsAllowedToBeSet()
        {
            const string connection = "some connection";

            var deleteStatement = new Delete(SomeTable).ConnectTo(connection);

            deleteStatement.GetType().GetField(ConnectionKeyword, BindingFlagsToSeeAll).GetValue(deleteStatement).ToString().Should().Be(connection);
        }
        public void TheConnectionStringisChangedButANewDeleteIsCreated()
        {
            const string connection = "some connection";

            var deleteStatement = new Delete(SomeTable).ConnectTo(connection);
            var record = deleteStatement.ConnectTo(connection);
            deleteStatement.Should().NotBe(record);
        }
        public void TheConnectionStringisChangedButTheWhereContainerIsTheSame()
        {
            const string whereContainerName = "_whereContainer";
            var whereClause = new Where()[FirstColumn.IsEqualTo(1)];

            var deleteStatement = new Delete(SomeTable).Where(whereClause).ConnectTo("A");
            var record = deleteStatement.ConnectTo("B");

            RetrieveValueFromObject(deleteStatement, whereContainerName).Should().Be(RetrieveValueFromObject(record, whereContainerName));
        }
        public void TheDeleteCanCreateAValidWithAnAlsoThatContainsTheSameName()
        {
            var firstColumnIsEqualToFirstValue =
                new Where()
                    [
                        FirstColumn.IsEqualTo(FirstValue),
                        Also.And(FirstColumn.IsEqualTo(FirstValue))
                    ];

            var deleteStatement =
                new Delete(SomeTable)
                    .Where(firstColumnIsEqualToFirstValue);

            deleteStatement.CreateSql().Should().NotBe("DELETE FROM " + SomeTable + " WHERE " + FirstColumn + " = @where_" + FirstColumn + " AND (" + FirstColumn + " = @where_" + FirstColumn + ")");
        }
        public void TheDeleteCanCreateAValidStatementWithConditions()
        {
            var firstColumnIsEqualToFirstValue =
                new Where()
                    [
                        FirstColumn.IsEqualTo(FirstValue)
                    ];

            var deleteStatement =
                new Delete(SomeTable)
                    .Where(firstColumnIsEqualToFirstValue);

            var whereItem =
                firstColumnIsEqualToFirstValue.GetType().GetProperty("WhereItems", BindingFlagsToSeeAll)
                    .GetValue(firstColumnIsEqualToFirstValue, BindingFlagsToSeeAll, null, null, null)
                    .As<IList<WhereItem>>()
                        .First();

            deleteStatement.CreateSql().Should().Be("DELETE FROM " + SomeTable + " WHERE " + FirstColumn + " = @" + whereItem.Name + whereItem.UniqueKey);
        }
        public void TheWhereContainerisChangedButTheConnectionStringIsTheSame()
        {
            var firstColumnIsEqualToFirstValue =
               new Where()
                   [
                       FirstColumn.IsEqualTo(FirstValue)
                   ];

            var deleteStatement = new Delete(SomeTable).Where(firstColumnIsEqualToFirstValue).ConnectTo("a");
            var record = deleteStatement.Where(new Where()[FirstColumn.IsEqualTo(1)]);

            RetrieveValueFromObject(deleteStatement, ConnectionKeyword).Should().Be(RetrieveValueFromObject(record, ConnectionKeyword));
        }
        public void TheWhereContainerisChangedButANewDeleteIsCreated()
        {
            var firstColumnIsEqualToFirstValue =
               new Where()
                   [
                       FirstColumn.IsEqualTo(FirstValue)
                   ];

            var deleteStatement = new Delete(SomeTable).Where(firstColumnIsEqualToFirstValue).ConnectTo("a");
            var record = deleteStatement.Where(new Where()[FirstColumn.IsEqualTo(1)]);

            deleteStatement.Should().NotBe(record);
        }
        public void TheDeleteCanCreateAValidStatement()
        {
            var deleteStatement = new Delete(SomeTable);

            deleteStatement.CreateSql().Should().Be("DELETE FROM " + SomeTable);
        }