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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
    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());
        }