Beispiel #1
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();
        }
Beispiel #2
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);
        }
Beispiel #3
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);
        }
Beispiel #4
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);
        }
Beispiel #5
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>();
        }
Beispiel #6
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>();
        }