public void TestInitialize( ) { _fixture = new Fixture( ); _sutCreator = new SutCreator(new SutInstanceCreator(new ArgumentNullExceptionFinder( )), new SutLazyInstanceCreator(new ArgumentNullExceptionFinder( ), new CustomAttributeFinder( ))); _freezeAttribute = Substitute.For <ICustomAttributeData> ( ); _freezeAttribute.AttributeType.Returns(typeof(FreezeAttribute)); _customAttributesWithFreeze = new [] { _freezeAttribute }; _infoInt = CreateParameterInfo(typeof(int)); _infoLazyString = CreateParameterInfo(typeof(Lazy <string>)); _infoString = CreateParameterInfo(typeof(string)); _infoClass = CreateParameterInfo(typeof(SomethingElse)); _infoSut = CreateParameterInfo(typeof(Something)); _infoLazyClass = CreateParameterInfo(typeof(Lazy <Something>)); _infoSomething = CreateParameterInfo(typeof(ISomething)); _infoSomethingElseWithFreeze = CreateParameterInfo(typeof(ISomethingElse)); _infoSomethingElseWithFreeze.CustomAttributes.Returns(_customAttributesWithFreeze); _infoStringFreeze = CreateParameterInfo(typeof(string)); _infoStringFreeze.CustomAttributes.Returns(_customAttributesWithFreeze); }
public void Create_ForSutCreatorIsNull_Throws( ) { _sutCreator = null; Action action = () => CreateSut( ); action.Should( ) .Throw <ArgumentNullException> ( ) .WithParameter("sutCreator"); }
public void SutCreator_CreateWithNullChildWaiterAndTestKitBaseAndProps_ThrowsArgumentNullException() { //arrange SutCreator sut = CreateSutCreator(); //act Action act = () => sut.Create <DummyActor>(null, null, null, ExpectedChildCount, Supervisor); //assert act.ShouldThrow <ArgumentNullException>(); }
public void SutCreator_Create_CreatesChildWithCorrectSupervisor() { //arrange SutCreator sut = CreateSutCreator(); //act TestActorRef <DummyActor> actor = sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, Supervisor); //assert actor.UnderlyingActor.Supervisor.Should().Be(Supervisor); }
public void SutCreator_Create_CreatesChildBeforeWaitingForChildrenUsingTheChildWaiter() { //arrange SutCreator sut = CreateSutCreator(); //act sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, Supervisor); //assert CallOrder.Should().ContainInOrder("callback", nameof(IChildWaiter.Wait)); }
public void SutCreator_Create_CreatesChildAfterStartingChildWaiter() { //arrange SutCreator sut = CreateSutCreator(); //act sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, Supervisor); //assert CallOrder.Should().ContainInOrder(nameof(IChildWaiter.Start), "callback"); }
public void Construct_ForTypeClass_InstanceWithPropertyNotAutoPopulated( ) { var sut = new SutCreator(new SutInstanceCreator(new ArgumentNullExceptionFinder( )), new SutLazyInstanceCreator(new ArgumentNullExceptionFinder( ), new CustomAttributeFinder( ))); var construct = sut.Construct(new ArgumentsGenerator( ), typeof(Device)) as Device; construct?.NotAutoPopulated .Should( ) .Be(Device.SomeText); }
public void Construct_ForTypeClass_InstanceWithPropertySetByDependency( ) { var sut = new SutCreator(new SutInstanceCreator(new ArgumentNullExceptionFinder( )), new SutLazyInstanceCreator(new ArgumentNullExceptionFinder( ), new CustomAttributeFinder( ))); var construct = sut.Construct(new ArgumentsGenerator( ), typeof(Device)) as Device; construct?.PopulatedByDependency .Should( ) .NotBeNull( ); }
public void SutCreator_Create_StartsChildWaiterWithCorrectCount() { //arrange SutCreator sut = CreateSutCreator(); //act sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, Supervisor); //assert ChildWaiterMock.Verify( waiter => waiter.Start(this, ExpectedChildCount), Times.Once); }
public async Task SutCreator_CreateWithNullSupervisor_CreatesChildWithNoSupervisor() { //arrange IActorRef rootGuardian = await Sys.ActorSelection("akka://test/user").ResolveOne(TimeSpan.FromSeconds(5)); SutCreator sut = CreateSutCreator(); //act TestActorRef <DummyActor> actor = sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, null); //assert actor.UnderlyingActor.Supervisor.Should().Be(rootGuardian); }
public void SutCreator_Create_WaitsForChildrenUsingChildWaiter() { //arrange SutCreator sut = CreateSutCreator(); //act sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, Supervisor); //assert ChildWaiterMock.Verify( waiter => waiter.Wait(), Times.Once); }
public void SutCreator_Create_OnlyStartsChildWaiterOnce() { //arrange SutCreator sut = CreateSutCreator(); //act sut.Create <DummyActor>(ChildWaiter, this, Props, ExpectedChildCount, Supervisor); //assert ChildWaiterMock.Verify( waiter => waiter.Start(this, It.IsAny <int>()), Times.Once); }
public void SutCreator_CreateWithNullSupervisor_CreatesChildWithNoSupervisor() { //arrange SutCreator sut = CreateSutCreator(); //act TestActorRef <DummyActor> actor = sut.Create <DummyActor>( ChildWaiter, this, Props, ExpectedChildCount, null); //assert actor.Path.Parent.Should().Be(ActorPath.Parse("akka://test/user")); }
public void SutCreator_CreateWithNullSupervisor_ThrowsArgumentNullException() { //arrange SutCreator sut = CreateSutCreator(); //act Action act = () => sut.Create <DummyActor>( ChildWaiter, this, Props, ExpectedChildCount, null); //assert act.Should().Throw <ArgumentNullException>(); }
public TestBase() : base(AkkaConfig.Config) { // Create values passed into sut TestKitPassedIntoSut = this; HandlersPassedIntoSut = ImmutableDictionary <(Type, Type), Func <object, object> > .Empty .Add((typeof(DummyActor1), typeof(Message1)), message1 => new Reply1()) .Add((typeof(DummyActor1), typeof(Message2)), message1 => new Reply2()) .Add((typeof(DummyActor2), typeof(Message1)), message1 => new Reply1()); PropsPassedIntoSut = Props.Create <DummyActor1>(); NumberOfChildrenIntoSut = TestUtils.Create <int>(); // Create shims _shimContext = ShimsContext.Create(); // Set up shims ShimSutCreator.Constructor = @this => { SutCreatorConstructorCount++; ConstructedSutCreator = @this; }; ShimTellChildWaiter.Constructor = @this => { TellChildWaiterConstructorCount++; ConstructedTellChildWaiter = @this; }; ShimChildWaiter.Constructor = @this => { ChildWaiterConstructorCount++; ConstructedChildWaiter = @this; }; ShimDependencyResolverAdder.Constructor = @this => { DependencyResolverAdderConstructorCount++; ConstructedDependencyResolverAdder = @this; }; ShimTestProbeDependencyResolverAdder.Constructor = @this => { TestProbeDependencyResolverAdderConstructorCount++; ConstructedTestProbeDependencyResolverAdder = @this; }; ShimTestProbeCreator.Constructor = @this => { TestProbeCreatorConstructorCount++; ConstructedTestProbeCreator = @this; }; ShimResolvedTestProbeStore.Constructor = @this => { ResolvedTestProbeStoreConstructorCount++; ConstructedResolvedTestProbeStore = @this; }; ShimTestProbeActorCreator.Constructor = @this => { TestProbeActorCreatorConstructorCount++; ConstructedTestProbeActorCreator = @this; }; ShimTestProbeHandlersMapper.Constructor = @this => { TestProbeHandlersMapperConstructorCount++; ConstructedTestProbeHandlersMapper = @this; }; ShimSutSupervisorStrategyGetter.Constructor = @this => { SutSupervisorStrategyGetterConstructorCount++; ConstructedSutSupervisorStrategyGetter = @this; }; ShimUnitTestFramework <DummyActor1> .ConstructorISutCreatorITellChildWaiterIChildWaiterIDependencyResolverAdderITestProbeDependencyResolverAdderITestProbeCreatorIResolvedTestProbeStoreITestProbeActorCreatorITestProbeHandlersMapperISutSupervisorStrategyGetterImmutableDictionaryOfValueTupleOfTy = (@this, sutCreator, tellChildWaiter, childWaiter, dependencyResolverAdder, testProbeDependencyResolverAdder, testProbeCreator, resolvedTestProbeStore, testProbeActorCreator, testProbeHandlersMapper, sutSupervisorStrategyGetter, handlers, testKit, props, numberOfChildren) => { UnitTestFrameworkConstructorCount++; ConstructedUnitTestFramework = @this; SutCreatorPassedIntoShim = sutCreator; TellChildWaiterPassedIntoShim = tellChildWaiter; ChildWaiterPassedIntoShim = childWaiter; DependencyResolverAdderPassedIntoShim = dependencyResolverAdder; TestProbeDependencyResolverAdderPassedIntoShim = testProbeDependencyResolverAdder; TestProbeCreatorPassedIntoShim = testProbeCreator; ResolvedTestProbeStorePassedIntoShim = resolvedTestProbeStore; TestProbeActorCreatorPassedIntoShim = testProbeActorCreator; TestProbeHandlersMapperPassedIntoShim = testProbeHandlersMapper; SutSupervisorStrategyGetterIntoShim = sutSupervisorStrategyGetter; HandlersPassedIntoShim = handlers; TestKitPassedIntoShim = testKit; PropsPassedIntoShim = props; NumberOfChildrenIntoShim = numberOfChildren; }; }