Ejemplo n.º 1
0
        public async Task Events_Multiplefr8AccountsAssociatedWithSameExternalAccountId_ShouldCheckPlansForAllUsers()
        {
            //Arrange

            var fr8AccountMock = new Mock <IFr8Account>();

            fr8AccountMock.Setup(x => x.GetSystemUser())
            .Returns(() => new Fr8AccountDO()
            {
                UserName = "******", EmailAddress = new EmailAddressDO()
            });
            ObjectFactory.Container.Inject(typeof(IFr8Account), fr8AccountMock.Object);

            var externalAccountId = "*****@*****.**";
            var plan1             = FixtureData.TestPlanWithSubscribeEvent(FixtureData.TestDockyardAccount1());
            var plan2             = FixtureData.TestPlanWithSubscribeEvent(FixtureData.TestDeveloperAccount(), 23);

            FixtureData.AddAuthorizationToken(FixtureData.TestDockyardAccount1(), externalAccountId);
            FixtureData.AddAuthorizationToken(FixtureData.TestDeveloperAccount(), externalAccountId);

            var planNode = new PlanNodeMock(plan1, plan2);
            var activity = new ActivityMock(ObjectFactory.GetInstance <IActivity>(), planNode.PlanNodes);

            ObjectFactory.Container.Inject(typeof(IPlanNode), planNode);
            ObjectFactory.Container.Inject(typeof(IActivity), activity);

            //Act
            var eventService = new Event();
            var curCrateStandardEventReport = ObjectFactory.GetInstance <ICrateManager>().FromDto(FixtureData.CrateDTOForEvents(externalAccountId));
            await eventService.ProcessInboundEvents(curCrateStandardEventReport);

            Assert.AreEqual(2, activity.Processed);
        }