public void Adding_duplicate_entity_by_type_throws() { var model = new Model(); Assert.Null(model.RemoveEntityType(new EntityType(typeof(Customer).FullName, model))); model.AddEntityType(typeof(Customer)); Assert.Equal( Strings.DuplicateEntityType(typeof(Customer).FullName), Assert.Throws<InvalidOperationException>(() => model.AddEntityType(typeof(Customer))).Message); }
public void Can_add_and_remove_entity_by_type() { var model = new Model(); Assert.Null(model.FindEntityType(typeof(Customer))); Assert.Null(model.RemoveEntityType(new EntityType(typeof(Customer), model))); var entityType = model.AddEntityType(typeof(Customer)); Assert.Equal(typeof(Customer), entityType.ClrType); Assert.NotNull(model.FindEntityType(typeof(Customer))); Assert.Same(model, entityType.Model); Assert.Same(entityType, model.GetOrAddEntityType(typeof(Customer))); Assert.Equal(new[] { entityType }, model.EntityTypes.ToArray()); Assert.Same(entityType, model.RemoveEntityType(entityType)); Assert.Null(model.RemoveEntityType(entityType)); Assert.Null(model.FindEntityType(typeof(Customer))); }
public void Cannot_remove_entity_type_when_referenced_by_foreign_key() { var model = new Model(); var customerType = model.GetOrAddEntityType(typeof(Customer)); var idProperty = customerType.GetOrAddProperty(Customer.IdProperty); var customerKey = customerType.GetOrAddKey(idProperty); var orderType = model.GetOrAddEntityType(typeof(Order)); var customerFk = orderType.GetOrAddProperty(Order.CustomerIdProperty); orderType.AddForeignKey(customerFk, customerKey, customerType); Assert.Equal( Strings.EntityTypeInUse(typeof(Customer).FullName), Assert.Throws<InvalidOperationException>(() => model.RemoveEntityType(customerType)).Message); }
public void Can_add_and_remove_entity() { var model = new Model(); var entityType = new EntityType(typeof(Customer)); Assert.Null(entityType.Model); model.AddEntityType(entityType); Assert.NotNull(model.TryGetEntityType(typeof(Customer))); Assert.Same(model, entityType.Model); model.RemoveEntityType(entityType); Assert.Null(model.TryGetEntityType(typeof(Customer))); Assert.Null(entityType.Model); }
public void Members_check_arguments() { var model = new Model(); Assert.Equal( "entityType", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws<ArgumentNullException>(() => model.AddEntityType(null)).ParamName); Assert.Equal( "entityType", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws<ArgumentNullException>(() => model.RemoveEntityType(null)).ParamName); Assert.Equal( "type", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws<ArgumentNullException>(() => model.TryGetEntityType((Type)null)).ParamName); }
public void Members_check_arguments() { var model = new Model(); Assert.Equal( "entityType", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => model.AddEntityType(null)).ParamName); Assert.Equal( "entityType", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => model.RemoveEntityType(null)).ParamName); Assert.Equal( "type", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => model.TryGetEntityType((Type)null)).ParamName); }