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); }
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; }
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")); }
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); }
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); }
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(); }
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(); }
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; }
public ScheduleCollectingStoneBehaviour(CoordinatorAgent agent, CoordinatorController controller) : base(agent) { this.coordinatorAgent = agent; this.controller = controller; }
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(); }
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(); }