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); }
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); }
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); }
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>(); }
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>(); }