コード例 #1
0
        public void Tags_Remove_RelationShipRemoved()
        {
            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                var company = new Company {
                    Name = "Dummy"
                };

                var tag = new Tag {
                    Name = "Prio1"
                };
                company.Tags.Add(tag);

                ctx.Companies.Add(company);

                ctx.SaveChangesSafe();
            }

            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                var tag = ctx.Tags.Single();
                ctx.Tags.Remove(tag);

                ctx.SaveChangesSafe();

                DBAssert.RowNotExists(ctx.Database, "Tags", "Id", tag.Id);
                DBAssert.RowNotExists(ctx.Database, "CompanyTags", "Tag_Id", tag.Id);
            }
        }
コード例 #2
0
        public void Tags_Add_PersistedToDb()
        {
            var company = new Company {
                Name = "Dummy"
            };

            var tag = new Tag {
                Name = "Prio1"
            };

            company.Tags.Add(tag);

            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                ctx.Companies.Add(company);

                ctx.SaveChangesSafe();

                DBAssert.RowExists(ctx.Database, "Tags", "Id", tag.Id);

                var result = ctx.Database.SqlQuery <CompanyTags>(string.Format("SELECT * FROM CompanyTags WHERE Company_Id = {0}", company.Id));
                Assert.That(result, Is.Not.Empty);
                Assert.That(result.Single().Tag_Id, Is.EqualTo(tag.Id));
            }
        }
コード例 #3
0
        private void SaveAndVerify(Company company, string tableToVerify, string idColumn, Func <Company, long> GetId)
        {
            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                ctx.Companies.Add(company);

                ctx.SaveChangesSafe();

                DBAssert.RowExists(ctx.Database, tableToVerify, idColumn, GetId(company));
            }
        }
コード例 #4
0
        private void DeleteAndVerify(Company company, string tableToVerify, string idColumn, Func <Company, long> GetId)
        {
            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                company = ctx.Companies.Single();
                var id = GetId(company);

                ctx.Companies.Remove(company);

                ctx.SaveChangesSafe();

                DBAssert.RowNotExists(ctx.Database, tableToVerify, idColumn, id);
            }
        }
コード例 #5
0
        public void DeleteCurrency_WithTranslations_DeleteCascades()
        {
            var euro = new Currency {
                Name = "Euro", Symbol = "EUR"
            };
            var dollar = new Currency {
                Name = "Dollar", Symbol = "USD"
            };
            var translation = new Translation
            {
                Source = euro,
                Target = dollar,
                Rate   = 1
            };

            euro.Translations.Add(translation);

            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                ctx.Currencies.Add(euro);
                ctx.Currencies.Add(dollar);

                ctx.SaveChangesSafe();

                DBAssert.RowExists(ctx.Database, "Currencies", "Id", euro.Id);
                DBAssert.RowExists(ctx.Database, "Currencies", "Id", dollar.Id);
                DBAssert.RowExists(ctx.Database, "Translations", "SourceId", euro.Id);
            }

            using (var ctx = ( AssetsContext )Db.CreateAssetsContext())
            {
                euro   = ctx.Currencies.Single(c => c.Name == "Euro");
                dollar = ctx.Currencies.Single(c => c.Name == "Dollar");
                var id = euro.Id;

                ctx.Currencies.Remove(euro);
                ctx.Currencies.Remove(dollar);

                ctx.SaveChangesSafe();

                DBAssert.RowNotExists(ctx.Database, "Currencies", "Id", euro.Id);
                DBAssert.RowNotExists(ctx.Database, "Currencies", "Id", dollar.Id);
                DBAssert.RowNotExists(ctx.Database, "Translations", "SourceId", euro.Id);
            }
        }