public void Initialization_for_navigation_without_backing_field_throws() { var accessor = new ClrCollectionAccessorFactory().Create(CreateNavigation("NoBackingFound")); Assert.Equal( CoreStrings.NavigationNoSetter("NoBackingFound", typeof(MyEntity).Name), Assert.Throws <InvalidOperationException>(() => accessor.Add(new MyEntity(false), new MyOtherEntity())).Message); }
public void Initialization_for_navigation_without_parameterless_constructor_throws() { var accessor = new ClrCollectionAccessorFactory().Create(CreateNavigation("AsMyUnavailableCollection")); Assert.Equal( CoreStrings.NavigationCannotCreateType("AsMyUnavailableCollection", typeof(MyEntity).FullName, typeof(MyUnavailableCollection).FullName), Assert.Throws <InvalidOperationException>(() => accessor.Add(new MyEntity(), new MyOtherEntity())).Message); }
public void Navigation_is_returned_if_it_implements_IClrCollectionAccessor() { var accessorMock = new Mock <IClrCollectionAccessor>(); var navigationMock = accessorMock.As <INavigation>(); var source = new ClrCollectionAccessorFactory(); Assert.Same(accessorMock.Object, source.Create(navigationMock.Object)); }
public void Initialization_for_navigation_with_internal_constructor_throws() { var accessor = new ClrCollectionAccessorFactory().Create(CreateNavigation("AsMyInternalCollection")); Assert.Equal( CoreStrings.NavigationCannotCreateType("AsMyInternalCollection", typeof(MyEntity).Name, typeof(MyInternalCollection).Name), Assert.Throws <InvalidOperationException>( () => accessor.Add(new MyEntity(false), new MyOtherEntity(), forMaterialization: false)).Message); }
private void Enumerable_backed_by_non_collection_throws(Action <IClrCollectionAccessor, MyEntity, MyOtherEntity> test) { var accessor = new ClrCollectionAccessorFactory().Create(CreateNavigation("AsIEnumerableNotCollection")); var entity = new MyEntity(initialize: true); var value = new MyOtherEntity(); Assert.Equal( CoreStrings.NavigationBadType( "AsIEnumerableNotCollection", typeof(MyEntity).Name, typeof(MyEnumerable).Name, typeof(MyOtherEntity).Name), Assert.Throws <InvalidOperationException>(() => test(accessor, entity, value)).Message); }
private static void AccessorTest( string navigationName, Func <MyEntity, IEnumerable <MyOtherEntity> > reader, bool initializeCollections = true) { var accessor = new ClrCollectionAccessorFactory().Create(CreateNavigation(navigationName)); var entity = new MyEntity(initializeCollections); var value = new MyOtherEntity(); Assert.False(accessor.Contains(entity, value)); accessor.Remove(entity, value); accessor.Add(entity, value); Assert.True(accessor.Contains(entity, value)); Assert.Equal(1, reader(entity).Count()); accessor.Remove(entity, value); Assert.False(accessor.Contains(entity, value)); Assert.Equal(0, reader(entity).Count()); }