Esempio n. 1
0
        public void CreateMinion()
        {
            var actorIdentity       = TestClaptrapIdentity.Instance;
            var claptrapDesignStore = new ClaptrapDesignStore();
            var masterDesign        = new ClaptrapDesign
            {
                ClaptrapOptions = new ClaptrapOptions
                {
                    MinionActivationOptions = new MinionActivationOptions(),
                    EventLoadingOptions     = new EventLoadingOptions(),
                    StateRecoveryOptions    = new StateRecoveryOptions(),
                    StateSavingOptions      = new StateSavingOptions()
                },
                ClaptrapTypeCode               = actorIdentity.TypeCode,
                EventHandlerDesigns            = ImmutableDictionary <string, IClaptrapEventHandlerDesign> .Empty,
                StateHolderFactoryType         = typeof(NoChangeStateHolderFactory),
                StateDataType                  = typeof(TestStateData),
                EventHandlerFactoryFactoryType = typeof(EventHandlerFactoryFactory),
                InitialStateDataFactoryType    = typeof(DefaultInitialStateDataFactory)
            };

            claptrapDesignStore.AddOrReplace(masterDesign);
            var minionDesign = new ClaptrapDesign
            {
                ClaptrapOptions = new ClaptrapOptions
                {
                    MinionActivationOptions = new MinionActivationOptions(),
                    EventLoadingOptions     = new EventLoadingOptions(),
                    StateRecoveryOptions    = new StateRecoveryOptions(),
                    StateSavingOptions      = new StateSavingOptions()
                },
                ClaptrapTypeCode               = actorIdentity.TypeCode,
                EventHandlerDesigns            = ImmutableDictionary <string, IClaptrapEventHandlerDesign> .Empty,
                StateHolderFactoryType         = typeof(NoChangeStateHolderFactory),
                StateDataType                  = typeof(TestStateData),
                EventHandlerFactoryFactoryType = typeof(EventHandlerFactoryFactory),
                InitialStateDataFactoryType    = typeof(DefaultInitialStateDataFactory),
                ClaptrapMasterDesign           = masterDesign
            };

            claptrapDesignStore.AddOrReplace(minionDesign);
            using var mocker = AutoMockHelper.Create(builderAction: builder =>
            {
                builder.RegisterInstance(claptrapDesignStore)
                .AsImplementedInterfaces()
                .SingleInstance();
            });

            mocker.Mock <IClaptrapModuleProvider>()
            .Setup(x => x.GetClaptrapSharedModules(actorIdentity))
            .Returns(Enumerable.Empty <IClaptrapSharedModule>());
            mocker.Mock <IClaptrapModuleProvider>()
            .Setup(x => x.GetClaptrapMinionModules(actorIdentity))
            .Returns(Enumerable.Empty <IClaptrapMinionModule>());

            var actorFactory = mocker.Create <ClaptrapFactory>();
            var actor        = actorFactory.Create(actorIdentity);

            actor.Should().NotBeNull();
        }
Esempio n. 2
0
        public async Task MinionNotFound()
        {
            var id         = new ClaptrapIdentity("1", "2");
            var store      = new ClaptrapDesignStore();
            var mainDesign = new ClaptrapDesign
            {
                ClaptrapTypeCode = id.TypeCode
            };

            store.AddOrReplace(mainDesign);


            using var mocker = AutoMock.GetLoose(builder =>
            {
                builder.RegisterInstance(store)
                .AsImplementedInterfaces()
                .SingleInstance();
            });

            var daprMinionActivator = mocker.Create <DaprMinionActivator>();

            // act
            await daprMinionActivator.WakeAsync(id);

            mocker.Mock <IActorProxyFactory>()
            .Verify(x => x.Create(It.IsAny <ActorId>(), It.IsAny <string>(), It.IsAny <ActorProxyOptions>()),
                    Times.Never);
        }
Esempio n. 3
0
        public async Task MinionFound()
        {
            var id         = new ClaptrapIdentity("1", "2");
            var store      = new ClaptrapDesignStore();
            var mainDesign = new ClaptrapDesign
            {
                ClaptrapTypeCode = id.TypeCode
            };

            store.AddOrReplace(mainDesign);
            var minionDesign = new ClaptrapDesign
            {
                ClaptrapTypeCode     = "minion",
                ClaptrapMasterDesign = mainDesign
            };

            store.AddOrReplace(minionDesign);


            using var mocker = AutoMock.GetLoose(builder =>
            {
                builder.RegisterInstance(store)
                .AsImplementedInterfaces()
                .SingleInstance();
            });

            mocker.Mock <IActorProxyFactory>()
            .Setup(x => x.Create(new ActorId(id.Id), minionDesign.ClaptrapTypeCode, It.IsAny <ActorProxyOptions>()))
            .Verifiable();

            var daprMinionActivator = mocker.Create <DaprMinionActivator>();

            // act
            await daprMinionActivator.WakeAsync(id);
        }
Esempio n. 4
0
        public void DesignNotFound()
        {
            var actorIdentity       = TestClaptrapIdentity.Instance;
            var claptrapDesignStore = new ClaptrapDesignStore();

            using var mocker = AutoMockHelper.Create(builderAction: builder =>
            {
                builder.RegisterInstance(claptrapDesignStore)
                .AsImplementedInterfaces()
                .SingleInstance();
            });

            var actorFactory = mocker.Create <ClaptrapFactory>();

            Assert.Throws <ClaptrapDesignNotFoundException>(() => actorFactory.Create(actorIdentity));
        }