Пример #1
0
        public void HaveCorrectUpsertCommandTextForPrimaryKeyOnly()
        {
            const string expectedQuery = "MERGE INTO [FooPrimaryKeys] dst " +
                                         "USING(SELECT @FK1 FK1, @FK2 FK2) src " +
                                         "ON src.[FK1] = dst.[FK1] AND src.[FK2] = dst.[FK2] " +
                                         "WHEN NOT MATCHED THEN INSERT([FK1], [FK2]) VALUES (@FK1, @FK2) ;";

            CommandGenerator <FooPrimaryKeys> commandGenerator = GetFooPrimaryKeyGenerator();

            DbCommand upsert = commandGenerator.GetUpsertCommand();

            upsert.CommandText.Should().Be(expectedQuery);
        }
Пример #2
0
        public void ThrowMissingPrimaryKeyExceptionWhenGetUpsertCommand()
        {
            KORM.Query.IQueryProvider provider = Substitute.For <KORM.Query.IQueryProvider>();
            provider.GetCommandForCurrentTransaction().Returns(new SqlCommand());

            IQuery <Foo> query = CreateFooQuery();

            query.Select(p => new { p.Plat, p.KrstneMeno, p.PropertyGuid, p.PropertyEnum, p.PropertyEnumConv });

            var generator = new CommandGenerator <Foo>(GetFooTableInfo(false), provider, query);

            Action action = () =>
            {
                DbCommand update = generator.GetUpsertCommand();
            };

            action.Should().Throw <KORM.Exceptions.MissingPrimaryKeyException>();
        }