Exemple #1
0
        public void CoordinatorControllerTestInit()
        {
            coordinatorRepository       = Substitute.For <IEntityRepository <Coordinator> >();
            invitationRepository        = Substitute.For <IEntityRepository <Invitation> >();
            enterpriseRepository        = Substitute.For <IEntityRepository <ContactEnterprise> >();
            applyRepository             = Substitute.For <IEntityRepository <Apply> >();
            stageRepository             = Substitute.For <IEntityRepository <Stage> >();
            studentRepository           = Substitute.For <IEntityRepository <Student> >();
            interviewRepository         = Substitute.For <IEntityRepository <Interview> >();
            accountService              = Substitute.For <IAccountService>();
            invitationContactRepository = Substitute.For <IEntityRepository <InvitationContactEnterprise> >();
            accountService              = Substitute.For <IAccountService>();
            httpContextService          = Substitute.For <IHttpContextService>();
            notificationRepository      = Substitute.For <IEntityRepository <Notification> >();
            applicationRepository       = Substitute.For <IEntityRepository <ApplicationUser> >();
            mailler = Substitute.For <IMailler>();
            stageAgreementRepository = Substitute.For <IEntityRepository <StageAgreement> >();

            notificationService = new NotificationService(applicationRepository, notificationRepository);
            miscRepository      = Substitute.For <IEntityRepository <Misc> >();

            coordinatorController = new CoordinatorController(enterpriseRepository, coordinatorRepository, invitationRepository, mailler,
                                                              accountService, invitationContactRepository, applyRepository, stageRepository, studentRepository,
                                                              interviewRepository, stageAgreementRepository, notificationService, httpContextService, miscRepository);


            coordinatorController = new CoordinatorController(enterpriseRepository, coordinatorRepository, invitationRepository, mailler, accountService, invitationContactRepository, applyRepository, stageRepository, studentRepository, interviewRepository, stageAgreementRepository, notificationService, httpContextService, miscRepository);
        }
Exemple #2
0
        public void ResumeWithEmptyStartTimeReturnsError()
        {
            var ravenDocStore = MockRepository.GenerateMock <IRavenDocStore>();

            ravenDocStore.Expect(r => r.GetStore().OpenSession()).Return(SmsTrackingSession);

            var bus                   = MockRepository.GenerateMock <IBus>();
            var dateTimeMapper        = MockRepository.GenerateMock <IDateTimeUtcFromOlsenMapping>();
            var context               = MockRepository.GenerateMock <ControllerContext>();
            var httpSessionStateBase  = MockRepository.GenerateStub <HttpSessionStateBase>();
            var coordinatorController = new CoordinatorController {
                Bus = bus, DateTimeOlsenMapping = dateTimeMapper, ControllerContext = context, RavenDocStore = ravenDocStore
            };

            var coordinatorId = Top1CoordinatorId;

            context.Expect(c => c.HttpContext.Session).Return(httpSessionStateBase);
            var collection = new FormCollection
            {
                { "CoordinatorId", coordinatorId.ToString() },
                { "timeToResume", string.Empty },
                { "UserTimeZone", "MadeUpLand" }
            };

            var result = (ViewResult)coordinatorController.Resume(collection);

            // assert that there are viewdata error state set
            var modelStateDictionary = result.ViewData.ModelState;

            Assert.That(modelStateDictionary["timeToResume"].Errors[0].ErrorMessage, Is.EqualTo("Time to resume must be set"));

            bus.VerifyAllExpectations();
        }
 public CancelAllJobsOfTypeBehaviour(CoordinatorAgent agent, CoordinatorController controller,
                                     MaterialConcept.MaterialType materialType) : base(agent)
 {
     this.coordinatorAgent = agent;
     this.controller       = controller;
     this.materialType     = materialType;
 }
Exemple #4
0
        public void CreateNoTopicError()
        {
            var bus           = MockRepository.GenerateMock <IBus>();
            var ravenDocStore = MockRepository.GenerateMock <IRavenDocStore>();
            var docStore      = MockRepository.GenerateMock <IDocumentStore>();

            ravenDocStore.Expect(r => r.GetStore()).Return(docStore);
            docStore.Expect(d => d.OpenSession("SmsTracking")).Return(SmsTrackingSession);

            var controller = new CoordinatorController {
                ControllerContext = new ControllerContext(), Bus = bus, RavenDocStore = ravenDocStore
            };
            var model = new CoordinatedSharedMessageModel
            {
                Numbers               = "04040404040",
                Message               = "Message",
                StartTime             = DateTime.Now.AddHours(2),
                SendAllBy             = DateTime.Now.AddHours(3),
                CoordinatorsToExclude = new List <Guid>(),
                Topic = string.Empty
            };
            var actionResult = (ViewResult)controller.Create(model);

            Assert.That(actionResult.ViewName, Is.EqualTo("Create"));
        }
Exemple #5
0
        public void CreateErrorWithSelectedCoordinatorsToExclude()
        {
            var bus           = MockRepository.GenerateMock <IBus>();
            var ravenDocStore = MockRepository.GenerateMock <IRavenDocStore>();
            var docStore      = MockRepository.GenerateMock <IDocumentStore>();

            ravenDocStore.Expect(r => r.GetStore()).Return(docStore);
            docStore.Expect(d => d.OpenSession("SmsTracking")).Return(SmsTrackingSession);

            var controller = new CoordinatorController {
                ControllerContext = new ControllerContext(), Bus = bus, RavenDocStore = ravenDocStore
            };
            var model = new CoordinatedSharedMessageModel
            {
                Numbers               = "04040404040",
                Message               = string.Empty,
                StartTime             = DateTime.Now.AddHours(2),
                SendAllBy             = DateTime.Now.AddHours(3),
                CoordinatorsToExclude = new List <Guid> {
                    Top1CoordinatorId
                }
            };
            var actionResult    = (ViewResult)controller.Create(model);
            var selectListItems = actionResult.ViewData["CoordinatorExcludeList"] as List <SelectListItem>;

            Assert.That(actionResult.ViewName, Is.EqualTo("Create"));
            Assert.True(selectListItems.First(s => s.Value == Top1CoordinatorId.ToString()).Selected);
        }
Exemple #6
0
        public void Initialize()
        {
            _coordinatorRepository   = Substitute.For <IEntityRepository <Coordinator> >();
            _studentRepository       = Substitute.For <IEntityRepository <Student> >();
            _httpContext             = Substitute.For <IHttpContextService>();
            _accountService          = Substitute.For <IAccountService>();
            _fileService             = Substitute.For <IFileImportService>();
            _internshipPeriodService = Substitute.For <IInternshipPeriodService>();
            _archivesService         = Substitute.For <IArchivesService>();

            _coordinatorController = new CoordinatorController(_coordinatorRepository, _studentRepository,
                                                               _accountService, _fileService,
                                                               _httpContext, _internshipPeriodService, _archivesService);
        }
Exemple #7
0
        public void CreateSingleNumber_UseSendAllNow()
        {
            var model = new CoordinatedSharedMessageModel
            {
                Numbers      = "04040404040",
                Message      = "asfdkjadfskl asflkj;faskjf;aslkjf;lasdkjfaslkfjas;lkfjslkfjas;lkfjsalkfjas;fklasj;flksdjf;lkasjflskdjflkasjflksjlk lskaf jlsk fdaskl dflksjfalk sflkj sfkl jlkjs flkj skjkj sadflkjsaflj",
                StartTime    = DateTime.Now.AddHours(2),
                Topic        = "frank",
                UserTimeZone = "Australia/Sydney"
            };

            var bus             = MockRepository.GenerateMock <IBus>();
            var mapper          = MockRepository.GenerateMock <ICoordinatorModelToMessageMapping>();
            var ravenDocStore   = MockRepository.GenerateMock <IRavenDocStore>();
            var docStore        = MockRepository.GenerateMock <IDocumentStore>();
            var configSession   = MockRepository.GenerateMock <IDocumentSession>();
            var trackingSession = MockRepository.GenerateMock <IDocumentSession>();
            var currentUser     = MockRepository.GenerateStub <ICurrentUser>();

            ravenDocStore.Expect(r => r.GetStore()).Return(docStore);
            docStore.Expect(d => d.OpenSession("Configuration")).Return(configSession);
            docStore.Expect(d => d.OpenSession("SmsTracking")).Return(trackingSession);
            configSession.Expect(d => d.Load <CountryCodeReplacement>("CountryCodeConfig")).Return(new CountryCodeReplacement());

            var coordinatorMessage = new CoordinatedSharedMessageModel();

            List <string> excludeList = null;

            mapper
            .Expect(m => m.MapToSendAllAtOnce(Arg <CoordinatedSharedMessageModel> .Is.Anything, Arg <CountryCodeReplacement> .Is.Anything, Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything))
            .Return(new SendAllMessagesAtOnce())
            .WhenCalled(t => coordinatorMessage = (CoordinatedSharedMessageModel)(t.Arguments[0]))
            .WhenCalled(t => excludeList        = (List <string>)(t.Arguments[2]));
            bus.Expect(b => b.Send(Arg <TrickleSmsOverCalculatedIntervalsBetweenSetDates> .Is.NotNull));

            var controller = new CoordinatorController {
                ControllerContext = new ControllerContext(), Bus = bus, Mapper = mapper, RavenDocStore = ravenDocStore, CurrentUser = currentUser
            };
            var actionResult = (RedirectToRouteResult)controller.Create(model);

            Assert.That(actionResult.RouteValues["action"], Is.EqualTo("Details"));
            Assert.That(coordinatorMessage.Message, Is.EqualTo(model.Message.Substring(0, 160)));

            bus.VerifyAllExpectations();
            mapper.VerifyAllExpectations();
            configSession.VerifyAllExpectations();
            trackingSession.VerifyAllExpectations();
        }
Exemple #8
0
        public void RescheduleWithStartAndFinishTime()
        {
            var bus                   = MockRepository.GenerateMock <IBus>();
            var dateTimeMapper        = MockRepository.GenerateMock <IDateTimeUtcFromOlsenMapping>();
            var context               = MockRepository.GenerateMock <ControllerContext>();
            var httpSessionStateBase  = MockRepository.GenerateStub <HttpSessionStateBase>();
            var coordinatorController = new CoordinatorController {
                Bus = bus, DateTimeOlsenMapping = dateTimeMapper, ControllerContext = context
            };

            var timeToResume  = DateTime.Now;
            var timeToFinish  = DateTime.Now.AddMinutes(44);
            var coordinatorId = Guid.NewGuid();

            var collection = new FormCollection
            {
                { "CoordinatorId", coordinatorId.ToString() },
                { "timeToResume", DateTime.Now.AddMinutes(20).ToString() },
                { "finishTime", DateTime.Now.AddMinutes(30).ToString() },
                { "UserTimeZone", "MadeUpLand" }
            };
            RescheduleTrickledMessages rescheduleMessage = null;

            bus
            .Expect(b => b.Send(Arg <RescheduleTrickledMessages> .Is.Anything))
            .WhenCalled(b => rescheduleMessage = (RescheduleTrickledMessages)(b.Arguments[0]));

            dateTimeMapper
            .Expect(d => d.DateTimeWithOlsenZoneToUtc(DateTime.Parse(collection["timeToResume"]), collection["UserTimeZone"]))
            .Return(timeToResume);

            dateTimeMapper
            .Expect(d => d.DateTimeWithOlsenZoneToUtc(DateTime.Parse(collection["finishTime"]), collection["UserTimeZone"]))
            .Return(timeToFinish);

            context.Expect(c => c.HttpContext.Session).Return(httpSessionStateBase);

            var result = (RedirectToRouteResult)coordinatorController.Resume(collection);

            Assert.That(result.RouteValues["action"], Is.EqualTo("Details"));

            Assert.That(rescheduleMessage.CoordinatorId, Is.EqualTo(coordinatorId));
            Assert.That(rescheduleMessage.ResumeTimeUtc, Is.EqualTo(timeToResume));
            Assert.That(rescheduleMessage.FinishTimeUtc, Is.EqualTo(timeToFinish));

            bus.VerifyAllExpectations();
        }
Exemple #9
0
        public void CreateSendAllAtOnceReturnsDetails()
        {
            var model = new CoordinatedSharedMessageModel
            {
                Numbers       = "04040404040",
                Message       = "Message",
                StartTime     = DateTime.Now.AddHours(2),
                SendAllAtOnce = true,
                Tags          = "tag1, tag2",
                Topic         = "New Feature!",
                UserTimeZone  = "Australia/Sydney"
            };

            var bus           = MockRepository.GenerateMock <IBus>();
            var mapper        = MockRepository.GenerateMock <ICoordinatorModelToMessageMapping>();
            var ravenDocStore = MockRepository.GenerateMock <IRavenDocStore>();
            var docStore      = MockRepository.GenerateMock <IDocumentStore>();
            var docSession    = MockRepository.GenerateMock <IDocumentSession>();
            var currentUser   = MockRepository.GenerateStub <ICurrentUser>();

            ravenDocStore.Expect(r => r.GetStore()).Return(docStore);
            docStore.Expect(d => d.OpenSession("Configuration")).Return(docSession);
            docSession.Expect(d => d.Load <CountryCodeReplacement>("CountryCodeConfig")).Return(new CountryCodeReplacement());

            mapper
            .Expect(m => m.MapToSendAllAtOnce(Arg <CoordinatedSharedMessageModel> .Is.Anything, Arg <CountryCodeReplacement> .Is.Anything, Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything))
            .Return(new SendAllMessagesAtOnce());
            var trickleMessage = new SendAllMessagesAtOnce();

            bus.Expect(b => b.Send(Arg <SendAllMessagesAtOnce> .Is.NotNull))
            .WhenCalled(i => trickleMessage = (SendAllMessagesAtOnce)(i.Arguments[0]));

            var controller = new CoordinatorController {
                ControllerContext = new ControllerContext(), Bus = bus, Mapper = mapper, RavenDocStore = ravenDocStore, CurrentUser = currentUser
            };
            var actionResult = (RedirectToRouteResult)controller.Create(model);

            Assert.That(actionResult.RouteValues["action"], Is.EqualTo("Details"));
            Assert.That(trickleMessage.CoordinatorId, Is.Not.EqualTo(Guid.Empty));

            bus.VerifyAllExpectations();
            mapper.VerifyAllExpectations();
        }
 public CoordinatorAgent(string containerName, string suggestedName, CoordinatorController controller) : base(containerName, suggestedName)
 {
     this.controller = controller;
 }
Exemple #11
0
 public ScheduleCollectingStoneBehaviour(CoordinatorAgent agent, CoordinatorController controller) : base(agent)
 {
     this.coordinatorAgent = agent;
     this.controller       = controller;
 }
Exemple #12
0
        public void CreateNewExcludeCoordinatorTopTenNoCoordinatorsSelected()
        {
            var ravenDocStore   = MockRepository.GenerateMock <IRavenDocStore>();
            var trackingSession = MockRepository.GenerateMock <IDocumentSession>();

            var _store = new EmbeddableDocumentStore {
                RunInMemory = true
            };

            _store.Initialize();
            var mostRecentCoordinators = new List <CoordinatorTrackingData>
            {
                new CoordinatorTrackingData(new List <MessageSendingStatus> {
                    new MessageSendingStatus {
                        Status = MessageStatusTracking.CompletedSuccess
                    }
                })
                {
                    CoordinatorId = Guid.NewGuid(),
                    MetaData      = new SmsMetaData {
                        Topic = "barry"
                    },
                    CreationDateUtc = DateTime.Now.AddDays(-3),
                },
                new CoordinatorTrackingData(new List <MessageSendingStatus> {
                    new MessageSendingStatus {
                        Status = MessageStatusTracking.CompletedSuccess
                    }
                })
                {
                    CoordinatorId = Guid.NewGuid(),
                    MetaData      = new SmsMetaData {
                        Topic = "simon"
                    },
                    CreationDateUtc = DateTime.Now.AddDays(-4),
                }
            };

            var Session = _store.OpenSession();

            foreach (var coordinatorTrackingData in mostRecentCoordinators)
            {
                Session.Store(coordinatorTrackingData, coordinatorTrackingData.CoordinatorId.ToString());
            }
            Session.SaveChanges();

            ravenDocStore.Expect(r => r.GetStore().OpenSession("SmsTracking")).Return(Session);

            var controller = new CoordinatorController {
                ControllerContext = new ControllerContext(), RavenDocStore = ravenDocStore
            };
            var actionResult = (ViewResult)controller.Create();

            var coordinatorExcludeList = (actionResult.ViewData["CoordinatorExcludeList"] as List <SelectListItem>);

            Assert.That(coordinatorExcludeList.Count(), Is.EqualTo(2));
            Assert.IsFalse(coordinatorExcludeList[0].Selected);
            Assert.That(coordinatorExcludeList[0].Text.Contains("barry"));
            Assert.IsFalse(coordinatorExcludeList[1].Selected);
            Assert.That(coordinatorExcludeList[1].Text.Contains("simon"));

            ravenDocStore.VerifyAllExpectations();
            trackingSession.VerifyAllExpectations();
        }
Exemple #13
0
        public void CreateExcludeMultiplePreviousCoordinatorMessagesRemovesMatchingNumbers_TrickleMessageSpaceDefined()
        {
            var CoordinatorToExclude1 = Guid.NewGuid();
            var CoordinatorToExclude2 = Guid.NewGuid();
            var model = new CoordinatedSharedMessageModel
            {
                Numbers               = "04040404040, 1, 2, 3, 7, 12",
                Message               = "asfdkjadfskl asflkj;faskjf;aslkjf;lasdkjfaslkfjas;lkfjslkfjas;lkfjsalkfjas;fklasj;flksdjf;lkasjflskdjflkasjflksjlk lskaf jlsk fdaskl dflksjfalk sflkj sfkl jlkjs flkj skjkj sadflkjsaflj",
                StartTime             = DateTime.Now.AddHours(2),
                SendAllBy             = DateTime.Now.AddHours(3),
                CoordinatorsToExclude = new List <Guid> {
                    CoordinatorToExclude1, CoordinatorToExclude2
                },
                Topic        = "frank",
                UserTimeZone = "Australia/Sydney"
            };

            var bus             = MockRepository.GenerateMock <IBus>();
            var mapper          = MockRepository.GenerateMock <ICoordinatorModelToMessageMapping>();
            var ravenDocStore   = MockRepository.GenerateMock <IRavenDocStore>();
            var docStore        = MockRepository.GenerateMock <IDocumentStore>();
            var docSession      = MockRepository.GenerateMock <IDocumentSession>();
            var trackingSession = MockRepository.GenerateMock <IDocumentSession>();
            var currentUser     = MockRepository.GenerateStub <ICurrentUser>();

            ravenDocStore.Expect(r => r.GetStore()).Return(docStore);
            docStore.Expect(d => d.OpenSession("Configuration")).Return(docSession);
            docStore.Expect(d => d.OpenSession("SmsTracking")).Return(trackingSession);
            docSession.Expect(d => d.Load <CountryCodeReplacement>("CountryCodeConfig")).Return(new CountryCodeReplacement());
            var previousCoordinatorToExclude1 = new CoordinatorTrackingData(new List <MessageSendingStatus> {
                new MessageSendingStatus {
                    Number = "04040404040"
                }, new MessageSendingStatus {
                    Number = "1"
                }
            });

            trackingSession.Expect(d => d.Load <CoordinatorTrackingData>(CoordinatorToExclude1.ToString())).Return(previousCoordinatorToExclude1);
            var previousCoordinatorToExclude2 = new CoordinatorTrackingData(new List <MessageSendingStatus> {
                new MessageSendingStatus {
                    Number = "7"
                }
            });

            trackingSession.Expect(d => d.Load <CoordinatorTrackingData>(CoordinatorToExclude2.ToString())).Return(previousCoordinatorToExclude2);

            var coordinatorMessage = new CoordinatedSharedMessageModel();
            var excludeList1       = previousCoordinatorToExclude1.GetListOfCoordinatedSchedules(ravenDocStore.GetStore()).Select(s => s.Number).ToList();
            var excludeList2       = previousCoordinatorToExclude2.GetListOfCoordinatedSchedules(ravenDocStore.GetStore()).Select(s => s.Number).ToList();

            List <string> excludeList = null;

            mapper
            .Expect(m => m.MapToTrickleOverPeriod(Arg <CoordinatedSharedMessageModel> .Is.Anything, Arg <CountryCodeReplacement> .Is.Anything, Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything))
            .Return(new TrickleSmsOverCalculatedIntervalsBetweenSetDates())
            .WhenCalled(t => coordinatorMessage = (CoordinatedSharedMessageModel)(t.Arguments[0]))
            .WhenCalled(t => excludeList        = (List <string>)(t.Arguments[2]));
            bus.Expect(b => b.Send(Arg <TrickleSmsOverCalculatedIntervalsBetweenSetDates> .Is.NotNull));

            var controller = new CoordinatorController {
                ControllerContext = new ControllerContext(), Bus = bus, Mapper = mapper, RavenDocStore = ravenDocStore, CurrentUser = currentUser
            };
            var actionResult = (RedirectToRouteResult)controller.Create(model);

            Assert.That(actionResult.RouteValues["action"], Is.EqualTo("Details"));
            Assert.That(coordinatorMessage.Message, Is.EqualTo(model.Message.Substring(0, 160)));
            Assert.That(excludeList.ToList(), Is.EqualTo(excludeList1.Union(excludeList2).Distinct().ToList()));

            bus.VerifyAllExpectations();
            mapper.VerifyAllExpectations();
            docSession.VerifyAllExpectations();
            trackingSession.VerifyAllExpectations();
        }