Exemple #1
0
        public void Commit_MultipleRows_SendsSqlsInCorrectOrder()
        {
            var factory  = GetProviderFactory();
            var provider = new StubSqlProvider();

            using (mocks.Record())
            {
                factory.CreateProvider("somestring");
                LastCall.Return(provider).IgnoreArguments();
            }

            DataBoy
            .ForTable("Person")
            .Row("IdPerson", 1).Data("Surname", "Obama").DeleteFirst()
            .Row("IdPerson", 2).Data("Surname", "Bush").DeleteFirst()
            .ForTable("Address")
            .Row("IdAddress", 100).Data("Street", "Main street").DeleteFirst()
            .Commit();

            Assert.AreEqual("DELETE FROM Address WHERE IdAddress = 100", provider.GetExecutedQuery(0));
            Assert.AreEqual("DELETE FROM Person WHERE IdPerson = 2", provider.GetExecutedQuery(1));
            Assert.AreEqual("DELETE FROM Person WHERE IdPerson = 1", provider.GetExecutedQuery(2));
            Assert.AreEqual("INSERT INTO Person (IDPERSON, SURNAME) VALUES(1, 'Obama')", provider.GetExecutedQuery(3));
            Assert.AreEqual("INSERT INTO Person (IDPERSON, SURNAME) VALUES(2, 'Bush')", provider.GetExecutedQuery(4));
            Assert.AreEqual("INSERT INTO Address (IDADDRESS, STREET) VALUES(100, 'Main street')", provider.GetExecutedQuery(5));
        }
Exemple #2
0
        public void IncRowVersion_HappyDays_SendsCorrectSqlToProvider()
        {
            var factory = GetProviderFactory();
            var provider = new StubSqlProvider();
            using (mocks.Record())
            {
                factory.CreateProvider("somestring");
                LastCall.Return(provider).IgnoreArguments();
            }

            Adversary.ForTable("Person").IdentifiedBy("IdPerson", 1).IncRowVersion("Version");

            Assert.AreEqual("UPDATE Person SET Version = Version + 1 WHERE IdPerson = 1", provider.GetExecutedQuery(0));
        }
Exemple #3
0
        public void Commit_ForUpdate_SendsUpdateInsteadOfInsert()
        {
            var factory  = GetProviderFactory();
            var provider = new StubSqlProvider();

            using (mocks.Record())
            {
                factory.CreateProvider("somestring");
                LastCall.Return(provider).IgnoreArguments();
            }

            DataBoy.ForTable("Person").Row("IdPerson", 1).Data("Surname", "Obama").ForUpdate().Commit();

            Assert.IsTrue(provider.GetExecutedQuery(0).StartsWith("UPDATE"));
        }
Exemple #4
0
        public void Values_WithMultipleRows_SendSqlAsExpected()
        {
            var factory  = GetProviderFactory();
            var provider = new StubSqlProvider();

            using (mocks.Record())
            {
                factory.CreateProvider("somestring");
                LastCall.Return(provider).IgnoreArguments();
            }

            DataBoy.ForTable("Person")
            .Values(
                Column.Named("FirstName").Eq("Steel"),
                Column.Named("LastName").Eq("Hotman"));

            Assert.AreEqual("INSERT INTO Person (FIRSTNAME, LASTNAME) VALUES('Steel', 'Hotman')", provider.GetExecutedQuery(0));
        }
Exemple #5
0
        public void Commit_ForUpdate_UniqueKeyColumnNotIncludedInUpdateStatement()
        {
            var factory  = GetProviderFactory();
            var provider = new StubSqlProvider();

            using (mocks.Record())
            {
                factory.CreateProvider("somestring");
                LastCall.Return(provider).IgnoreArguments();
            }

            string idColumenName = "IdPerson";

            DataBoy.ForTable("Person").Row(idColumenName, 1).Data("Surname", "Obama").ForUpdate().Commit();

            Assert.AreEqual("UPDATE Person SET SURNAME = 'Obama' WHERE IdPerson = 1", provider.GetExecutedQuery(0));
        }
Exemple #6
0
        public void IncRowVersion_HappyDays_SendsCorrectSqlToProvider()
        {
            var factory  = GetProviderFactory();
            var provider = new StubSqlProvider();

            using (mocks.Record())
            {
                factory.CreateProvider("somestring");
                LastCall.Return(provider).IgnoreArguments();
            }

            Adversary.ForTable("Person").IdentifiedBy("IdPerson", 1).IncRowVersion("Version");

            Assert.AreEqual("UPDATE Person SET Version = Version + 1 WHERE IdPerson = 1", provider.GetExecutedQuery(0));
        }