Example #1
0
        public void ApplySearchCriteria()
        {
            Entities.Clear();
            long position = 1;
            IDomainEntityFactory factory = new DomainEntityFactory(DataService, Messenger);

            try
            {
                foreach (T item in SelectEntities())
                {
                    Entities.Add(factory.GetDomainEntity(item, position++));
                }

                OnPropertyChanged(nameof(Entities));
            }
            catch (EntityException e)
            {
                OnEntityException(e);
            }
            catch (DbEntityValidationException e)
            {
                OnDbEntityValidationException(e);
            }
            catch (DbUpdateException e)
            {
                OnDbUpdateException(e);
            }
        }
Example #2
0
        // --------------------------MOCK VALIDATION ENTITIES----------------------------

        private MockValidatableDomainEntity CreateTestEntity <T>() where T : IEntityDelegator
        {
            var factory = new DomainEntityFactory(new MockResolver());

            factory.BehaviorsFor <T>(
                e => e.Supports <IValidationBehavior, MockValidationBehavior>());

            return(factory.Create <MockValidatableDomainEntity>());
        }
Example #3
0
        // --------------------------MOCK DOMAIN ENTITIES----------------------------


        // Creates an source domain entity for testing with the mapping behavior registered.
        private SourceDomainEntity CreateTestEntity <T>(TargetMap[] targetMaps)
            where T : IEntityDelegator
        {
            var factory = new DomainEntityFactory(new MockResolver(targetMaps));

            factory.BehaviorsFor <T>(
                e => e.Supports <IMappingBehavior, MappingBehavior>());

            return(factory.Create <SourceDomainEntity>());
        }
Example #4
0
        public void DomainEntity_MayNotSupportBehavior()
        {
            var factory = new DomainEntityFactory(new MockResolver());

            var domainEntity = factory.Create <MockDomainEntity>();
            var behavior     = domainEntity.Entity.GetBehavior <IMockNotSupportedBehavior>();

            behavior.Should().NotBeNull();
            behavior.supported.Should().BeFalse();
            behavior.instance.Should().BeNull();
        }
        public override void StartModule(IContainer container, ILifetimeScope scope)
        {
            var resolver = new AutofacDomainServiceRosolver(container);
            var factory  = new DomainEntityFactory(resolver);

            foreach (var registry in Registries)
            {
                registry.Register(factory);
            }

            DomainEntityFactory.SetInstance(factory);
        }
Example #6
0
        public void BehaviorCreatedOnce_PerDomainEntity()
        {
            var factory = new DomainEntityFactory(new MockResolver());

            factory.AddBehavior <IMockDomainBehavior, MockGlobalDomainBehavior>();

            var domainEntity = factory.Create <MockDomainEntity>();
            var behavior     = domainEntity.Entity.GetBehavior <IMockDomainBehavior>();
            var behavior2    = domainEntity.Entity.GetBehavior <IMockDomainBehavior>();

            behavior.instance.Should().BeSameAs(behavior2.instance);
        }
Example #7
0
        public void DomainEntity_AssocatedWithBehavior()
        {
            var resolver = new MockResolver();
            var factory  = new DomainEntityFactory(resolver);

            factory.AddBehavior <IMockDomainBehavior, MockGlobalDomainBehavior>();

            var domainEntity = factory.Create <MockDomainEntity>();
            var behavior     = domainEntity.Entity.GetBehavior <IMockDomainBehavior>();

            domainEntity.Should().BeSameAs(behavior.instance.DomainEntity);
        }
Example #8
0
        public void BehaviorServices_AreResolved()
        {
            var resolver = new MockResolver();
            var factory  = new DomainEntityFactory(resolver);

            factory.AddBehavior <IMockDomainBehavior, MockGlobalDomainBehavior>();

            resolver.ResolveCount.Should().Be(0);
            var domainEntity = factory.Create <MockDomainEntity>();
            var behavior     = domainEntity.Entity.GetBehavior <IMockDomainBehavior>();

            resolver.ResolveCount.Should().Be(1);
        }
Example #9
0
        public void GlobalBehavior_AppliesToAllDomainEntities()
        {
            var factory = new DomainEntityFactory(new MockResolver());

            factory.AddBehavior <IMockDomainBehavior, MockGlobalDomainBehavior>();

            var domainEntity = factory.Create <MockDomainEntity>();
            var behavior     = domainEntity.Entity.GetBehavior <IMockDomainBehavior>();

            behavior.Should().NotBeNull();
            behavior.supported.Should().BeTrue();
            behavior.instance.Should().NotBeNull();
            behavior.instance.Should().BeOfType <MockGlobalDomainBehavior>();
        }
Example #10
0
        public void Add()
        {
            bool oldHasChanges           = HasChanges;
            IDomainEntityFactory factory = new DomainEntityFactory(DataService, Messenger);

            SelectedItem = factory.GetDomainEntity <T>();
            if (oldHasChanges != HasChanges)
            {
                OnPropertyChanged(nameof(HasChanges));
            }
            else
            {
                SelectedItem?.UpdateHasChanges();
            }
        }
Example #11
0
        public void DomainEntityBehavior_Overrides_GlobalBehavior()
        {
            var factory = new DomainEntityFactory(new MockResolver());

            factory.AddBehavior <IMockDomainBehavior, MockGlobalDomainBehavior>();

            // Register behavior that is specific to the domain entity type.
            factory.BehaviorsFor <MockDomainEntity>(
                entity => entity.Supports <IMockDomainBehavior, MockDomainBehavior>());

            var domainEntity = factory.Create <MockDomainEntity>();
            var behavior     = domainEntity.Entity.GetBehavior <IMockDomainBehavior>();

            behavior.Should().NotBeNull();
            behavior.supported.Should().BeTrue();
            behavior.instance.Should().NotBeNull();
            behavior.instance.Should().BeOfType <MockDomainBehavior>();
        }
        public void DomainTypeConstructorTest()
        {
            var ctor1 = new DomainEntityFactory <Customer, int, string>();

            var id   = 1;
            var name = "someone";

            var c1 = ctor1.Construct(new object[] { id, name });

            Assert.IsTrue(c1.Id == id && c1.Name == name && c1.GetEntityState() == EntityState.Uninitialized);

            c1 = ctor1.New.Construct(("id", id), ("name", name));
            Assert.IsTrue(c1.Id == id && c1.Name == name && c1.GetEntityState() == EntityState.New);

            c1 = ctor1.Existing.Construct(1, name);
            Assert.IsTrue(c1.Id == id && c1.Name == name && c1.GetEntityState() == EntityState.Existing);

            c1 = ctor1.ConstructWithDefaults(("id", id));
            Assert.IsTrue(c1.Id == id && c1.Name == null && c1.GetEntityState() == EntityState.Uninitialized);

            Assert.Throws <InvalidOperationException>(() => c1 = ctor1.Construct(("id", id)));
        }