public void Insert_update_and_delete_entity_with_enum_property() { using (var context = new GearsOfWarContext()) { var taisTag = new CogTag { Note = "Tai's tag", }; var tai = new Gear { FullName = "Tai Kaliso", Nickname = "Tai", Squad = context.Squads.First(), Rank = MilitaryRank.Corporal, Tag = taisTag, }; context.Gears.Add(tai); context.SaveChanges(); Assert.True(context.Gears.Where(g => g.Nickname == "Tai" && g.Rank == MilitaryRank.Corporal).Any()); tai.Rank = MilitaryRank.Sergeant; context.SaveChanges(); var taisNewRank = context.Gears.Where(g => g.Nickname == "Tai").Select(g => g.Rank).Single(); Assert.Equal(MilitaryRank.Sergeant, taisNewRank); context.Gears.Remove(tai); context.SaveChanges(); Assert.False(context.Gears.Where(g => g.Nickname == "Tai").Any()); } }
public void Modifying_identity_generated_key_throws() { ExtendedSqlAzureExecutionStrategy.ExecuteNew( () => { using (new TransactionScope()) { using (var context = new GearsOfWarContext()) { var tag = new CogTag { Id = Guid.NewGuid(), Note = "Some Note", }; context.Tags.Add(tag); context.SaveChanges(); tag.Id = Guid.NewGuid(); Assert.Throws <InvalidOperationException>(() => context.SaveChanges()) .ValidateMessage(typeof(DbContext).Assembly(), "ObjectStateEntry_CannotModifyKeyProperty", null, "Id"); } } }); }
public void Update_resulting_in_data_truncation_throws_exception() { ExtendedSqlAzureExecutionStrategy.ExecuteNew( () => { using (new TransactionScope()) { using (var context = new GearsOfWarContext()) { var cogTagNoteMaxLength = 40; var cogTag = new CogTag { Id = Guid.NewGuid(), Note = new string('A', cogTagNoteMaxLength), }; context.Tags.Add(cogTag); context.SaveChanges(); cogTag.Note = new string('A', cogTagNoteMaxLength + 1); Assert.Throws <DbUpdateException>(() => context.SaveChanges()); } } }); }
public void Same_entity_with_one_to_one_relationship_attached_to_two_different_entities_throw_on_insert() { using (var context = new GearsOfWarContext()) { var tag = new CogTag { Note = "Who's tag is it?", }; var gear1 = new Gear { Nickname = "Gear1", FullName = "Gear1", Rank = MilitaryRank.Private, Squad = context.Squads.First(), Tag = tag, }; var gear2 = new Gear { Nickname = "Gear2", FullName = "Gear2", Rank = MilitaryRank.Private, Squad = context.Squads.First(), Tag = tag, }; context.Gears.AddRange(new[] { gear1, gear2 }); Assert.Throws <DbUpdateException>(() => context.SaveChanges()); } }
public void Inserting_entity_that_references_itself_in_one_to_many_relationship_works() { using (var context = new GearsOfWarContext()) { var squad = new Squad { Name = "One Man Squad", }; var tag = new CogTag { Note = "Tag", }; var oneManArmy = new Gear { FullName = "One Man Army", Nickname = "OMA", Rank = MilitaryRank.Private, Squad = squad, Tag = tag, }; oneManArmy.Reports = new List <Gear> { oneManArmy }; context.Gears.Add(oneManArmy); context.SaveChanges(); var oma = context.Gears.Where(g => g.Nickname == "OMA").Include(g => g.Reports).Single(); Assert.Same(oma, oma.Reports.Single()); } }
public void Insert_principal_entity_without_required_dependant_does_not_throw() { using (var context = new GearsOfWarContext()) { var nobodysTag = new CogTag { Note = "Owner Unknown", }; context.Tags.Add(nobodysTag); context.SaveChanges(); Assert.True(context.Tags.Any(t => t.Note == "Owner Unknown")); } }
public void Insert_resulting_in_data_truncation_throws_exception() { using (var context = new GearsOfWarContext()) { var cogTagNoteMaxLength = 40; var cogTag = new CogTag { Note = new string('A', cogTagNoteMaxLength + 1), }; context.Tags.Add(cogTag); var exception = Assert.Throws <DbUpdateException>( () => context.SaveChanges()); } }
public void Insert_principal_entity_without_required_dependant_does_not_throw() { ExtendedSqlAzureExecutionStrategy.ExecuteNew( () => { using (new TransactionScope()) { using (var context = new GearsOfWarContext()) { var nobodysTag = new CogTag { Id = Guid.NewGuid(), Note = "Owner Unknown", }; context.Tags.Add(nobodysTag); context.SaveChanges(); Assert.True(context.Tags.Any(t => t.Note == "Owner Unknown")); } } }); }
public static void Seed(GearsOfWarContext context) { var deltaSquad = new Squad { Name = "Delta", Members = new List<Gear>() }; context.Squads.Add(deltaSquad); context.SaveChanges(); var kiloSquad = new Squad { Name = "Kilo", Members = new List<Gear>() }; context.Squads.Add(kiloSquad); context.SaveChanges(); var jacinto = new City { Location = "Jacinto's location", Name = "Jacinto" }; var ephyra = new City { Location = "Ephyra's location", Name = "Ephyra" }; var hanover = new City { Location = "Hanover's location", Name = "Hanover" }; var unknown = new City { Location = "Unknown", Name = "Unknown" }; context.Cities.Add(jacinto); context.Cities.Add(ephyra); context.Cities.Add(hanover); context.Cities.Add(unknown); context.SaveChanges(); var marcusLancer = new Weapon { Name = "Marcus' Lancer", AmmunitionType = AmmunitionType.Cartridge, IsAutomatic = true }; var marcusGnasher = new Weapon { Name = "Marcus' Gnasher", AmmunitionType = AmmunitionType.Shell, IsAutomatic = false, SynergyWith = marcusLancer }; var domsHammerburst = new Weapon { Name = "Dom's Hammerburst", AmmunitionType = AmmunitionType.Cartridge, IsAutomatic = false }; var domsGnasher = new Weapon { Name = "Dom's Gnasher", AmmunitionType = AmmunitionType.Shell, IsAutomatic = false }; var colesGnasher = new Weapon { Name = "Cole's Gnasher", AmmunitionType = AmmunitionType.Shell, IsAutomatic = false }; var colesMulcher = new Weapon { Name = "Cole's Mulcher", AmmunitionType = AmmunitionType.Cartridge, IsAutomatic = true }; var bairdsLancer = new Weapon { Name = "Baird's Lancer", AmmunitionType = AmmunitionType.Cartridge, IsAutomatic = true }; var bairdsGnasher = new Weapon { Name = "Baird's Gnasher", AmmunitionType = AmmunitionType.Shell, IsAutomatic = false }; var paduksMarkza = new Weapon { Name = "Paduk's Markza", AmmunitionType = AmmunitionType.Cartridge, IsAutomatic = false }; var maulersFlail = new Weapon { Name = "Mauler's Flail", IsAutomatic = false }; context.Weapons.Add(marcusLancer); context.Weapons.Add(marcusGnasher); context.Weapons.Add(domsHammerburst); context.Weapons.Add(domsGnasher); context.Weapons.Add(colesGnasher); context.Weapons.Add(colesMulcher); context.Weapons.Add(bairdsLancer); context.Weapons.Add(bairdsGnasher); context.Weapons.Add(paduksMarkza); context.Weapons.Add(maulersFlail); context.SaveChanges(); var marcusTag = new CogTag { Id = Guid.NewGuid(), Note = "Marcus's Tag" }; var domsTag = new CogTag { Id = Guid.NewGuid(), Note = "Dom's Tag" }; var colesTag = new CogTag { Id = Guid.NewGuid(), Note = "Cole's Tag" }; var bairdsTag = new CogTag { Id = Guid.NewGuid(), Note = "Bairds's Tag" }; var paduksTag = new CogTag { Id = Guid.NewGuid(), Note = "Paduk's Tag" }; var kiaTag = new CogTag { Id = Guid.NewGuid(), Note = "K.I.A." }; context.Tags.Add(marcusTag); context.Tags.Add(domsTag); context.Tags.Add(colesTag); context.Tags.Add(bairdsTag); context.Tags.Add(paduksTag); context.Tags.Add(kiaTag); context.SaveChanges(); var dom = new Gear { Nickname = "Dom", FullName = "Dominic Santiago", SquadId = deltaSquad.Id, Rank = MilitaryRank.Corporal, AssignedCity = ephyra, CityOrBirthName = ephyra.Name, Tag = domsTag, Weapons = new List<Weapon> { domsHammerburst, domsGnasher } }; var cole = new Gear { Nickname = "Cole Train", FullName = "Augustus Cole", SquadId = deltaSquad.Id, Rank = MilitaryRank.Private, CityOrBirthName = hanover.Name, AssignedCity = jacinto, Tag = colesTag, Weapons = new List<Weapon> { colesGnasher, colesMulcher } }; var paduk = new Gear { Nickname = "Paduk", FullName = "Garron Paduk", SquadId = kiloSquad.Id, Rank = MilitaryRank.Private, CityOrBirthName = unknown.Name, Tag = paduksTag, Weapons = new List<Weapon> { paduksMarkza } }; var baird = new Officer { Nickname = "Baird", FullName = "Damon Baird", SquadId = deltaSquad.Id, Rank = MilitaryRank.Corporal, CityOrBirthName = unknown.Name, AssignedCity = jacinto, Tag = bairdsTag, Reports = new List<Gear> { paduk }, Weapons = new List<Weapon> { bairdsLancer, bairdsGnasher } }; var marcus = new Officer { Nickname = "Marcus", FullName = "Marcus Fenix", SquadId = deltaSquad.Id, Rank = MilitaryRank.Sergeant, CityOrBirthName = jacinto.Name, Tag = marcusTag, Reports = new List<Gear> { dom, cole, baird }, Weapons = new List<Weapon> { marcusLancer, marcusGnasher } }; context.Gears.Add(marcus); context.Gears.Add(dom); context.Gears.Add(cole); context.Gears.Add(baird); context.Gears.Add(paduk); context.SaveChanges(); }