public void Adding_entities_with_shadow_keys_should_not_throw() { using (var context = new NullShadowKeyContext()) { var assembly = new TestAssembly { Name = "Assembly1" }; var testClass = new TestClass { Assembly = assembly, Name = "Class1" }; var test = context.Tests.Add(new Test { Class = testClass, Name = "Test1" }).Entity; context.SaveChanges(); ValidateGraph(context, assembly, testClass, test); } using (var context = new NullShadowKeyContext()) { var test = context.Tests.Single(); var assembly = context.Assemblies.Single(); var testClass = context.Classes.Single(); ValidateGraph(context, assembly, testClass, test); } }
private static void ValidateGraph(NullShadowKeyContext context, TestAssembly assembly, TestClass testClass, Test test) { Assert.Equal(EntityState.Unchanged, context.Entry(assembly).State); Assert.Equal("Assembly1", assembly.Name); Assert.Same(testClass, test.Class); Assert.Equal(EntityState.Unchanged, context.Entry(testClass).State); Assert.Equal("Class1", testClass.Name); Assert.Equal("Assembly1", context.Entry(testClass).Property("AssemblyName").CurrentValue); Assert.Same(test, testClass.Tests.Single()); Assert.Same(assembly, testClass.Assembly); Assert.Equal(EntityState.Unchanged, context.Entry(test).State); Assert.Equal("Test1", test.Name); Assert.Equal("Assembly1", context.Entry(test).Property("AssemblyName").CurrentValue); Assert.Equal("Class1", context.Entry(test).Property("ClassName").CurrentValue); Assert.Same(testClass, assembly.Classes.Single()); }