public async Task <IHttpActionResult> CreateOrganization(string description, string details, OrganizationType organizationType, ReportingFrequency reportingFrequency, EntityReference parent) { try { if (!_userContext.CurrentUserIsSystemUser()) { return(Unauthorized()); } if (string.IsNullOrWhiteSpace(description)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(description)); } if (!_userContext.CurrentUserIsSystemAdmin()) { return(Unauthorized()); } var cmd = new CreateOrganizationCommand(description, details, organizationType, reportingFrequency, parent); await _endpointInstance().SendWithSignalRMetaData(cmd, Request); return(this.Accepted()); } catch (Exception ex) { _log.Error(ex); return(InternalServerError()); } }
public async Task <IHttpActionResult> CopyCentralPlan( int copyFromReportId, OrganizationReference organization, int year, ReportingTerm reportingTerm, ReportingFrequency reportingFrequency) { try { if (!_userContext.CurrentUserIsSystemUser()) { return(Unauthorized()); } if (organization == null) { throw new ArgumentNullException(nameof(organization)); } if (!_userContext.CurrentUserCanAccess(organization.Id)) { return(Unauthorized()); } var cmd = new CopyUnitPlanCommand(copyFromReportId, organization, year, reportingTerm, reportingFrequency); await _endpointInstance().SendWithSignalRMetaData(cmd, Request); return(this.Accepted()); } catch (Exception ex) { _log.Error(ex); return(InternalServerError()); } }
public ReportingPeriod(ReportingFrequency reportingFrequency, ReportingTerm reportingTerm, int year) { ReportingFrequency = reportingFrequency; ReportingTerm = reportingTerm; Year = year; SetStartDateAndEndDate(); }
public async Task Handle_SavesUnitReport(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, OrganizationType.Unit) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var cmd = new CreateUnitPlanCommand(organization, year, reportingTerm, reportingFrequency); var description = cmd.Description; var expected = new UnitReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .SetReportData(ReportData.Default()) .Build(); return(new { cmd, username, expected }); }); var context = await Endpoint.Act <CreateUnitPlanCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.cmd, ctx)); }); var evt = context.ExpectPublish <IUnitPlanCreated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var report = s.Query <UnitReport>().Single(); report.Should().NotBeNull(); report.Should().BeEquivalentTo(testParams.expected, e => e.Excluding(p => p.Id)); report.ReportingPeriod.Should().BeEquivalentTo(testParams.expected.ReportingPeriod); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IUnitPlanCreated>(e => { e.Organization = testParams.expected.Organization; e.Username = testParams.username; e.UnitReport = reportRef; }); evt.Should().BeEquivalentTo(expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public void CreateNewUnitPlan_SavesCorrectlyWhenLastYearSubmitted(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var organizationType = OrganizationType.Unit; var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, organizationType) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); OrganizationReference organizationRef = organization; var reportingPeriod = new ReportingPeriod(reportingFrequency, reportingTerm, year); var expected = new UnitReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .SetReportData(ReportData.Default()) .Build(); return(new { description, organizationRef, reportingPeriod, expected }); }); var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer, c => { var unitReport = c.GetInstance <UnitReportFactory>() .CreateNewUnitPlan(testParams.description, testParams.organizationRef, testParams.reportingPeriod.ReportingTerm, testParams.reportingPeriod.Year, reportingFrequency); return(new { unitReport }); }); result.unitReport.Should().NotBeNull(); result.unitReport.Should().BeEquivalentTo(testParams.expected, e => e.Excluding(p => p.Id)); }
public async Task Handle_DeletesReport(OrganizationType organizationType, ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(organizationType) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); Report report = new ReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IReportDeleted>(e => { e.Organization = organization; e.Username = username; e.Report = reportRef; }); return(new { Cmd = new DeleteReportCommand(report.Id), username, expectedEvt }); }); var context = await Endpoint.Act <DeleteReportCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IReportDeleted>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var report = s.Get <Report>(testParams.Cmd.ReportId); report.Should().BeNull(); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public async Task Handle_DoNotSavesCentralReport_WhenDuplicate(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, OrganizationType.Central) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var copyFrom = new CentralReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year - 1)) .BuildAndPersist(s); var duplicate = new CentralReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); return(new { Cmd = new CopyCentralPlanCommand(copyFrom.Id, organization, year, reportingTerm, reportingFrequency), username, duplicate }); }); var context = await Endpoint.Act <CopyCentralPlanCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <ICentralPlanCopyFailed>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var report = s.Query <CentralReport>().OrderByDescending(o => o.Id).First(); report.Should().NotBeNull(); report.Should().BeEquivalentTo(testParams.duplicate); evt.Errors[0].Should().Contain(testParams.duplicate.Description); }); }
public CreateCentralPlanCommand( OrganizationReference organization, int year, ReportingTerm reportingTerm, ReportingFrequency reportingFrequency) { Organization = organization ?? throw new ArgumentNullException(nameof(organization)); Year = year; ReportingTerm = reportingTerm; ReportingFrequency = reportingFrequency; }
public async Task Handle_SavesRecord(OrganizationType organizationType, ReportingFrequency reportingFrequency) { var username = DataProvider.Get <string>(); var description = DataProvider.Get <string>(); var details = DataProvider.Get <string>(); var parent = DataProvider.Get <EntityReference>(); DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var expected = new OrganizationBuilder() .SetDescription(description) .SetDetails(details) .SetParent(parent) .SetOrganizationType(organizationType) .SetReportingFreQuency(reportingFrequency) .Build(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => new { Cmd = new CreateOrganizationCommand(description, details, organizationType, reportingFrequency, parent), username, expected }); var context = await Endpoint.Act <CreateOrganizationCommandHandler>( AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IOrganizationCreated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var org = s.Query <Organization>().Single(); org.Should().NotBeNull(); org.Should().BeEquivalentTo(testParams.expected, e => e.Excluding(p => p.Id)); OrganizationReference orgRef = org; var expectedEvt = Test.CreateInstance <IOrganizationCreated>(e => { e.Organization = orgRef; e.Username = testParams.username; }); evt.Should().BeEquivalentTo(expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public CopyStatePlanCommand( int copyFromReportId, OrganizationReference organization, int year, ReportingTerm reportingTerm, ReportingFrequency reportingFrequency = ReportingFrequency.Quarterly) { Organization = organization ?? throw new ArgumentNullException(nameof(organization)); CopyFromReportId = copyFromReportId; Year = year; ReportingTerm = reportingTerm; ReportingFrequency = reportingFrequency; }
public OrganizationReference(int id, OrganizationType organizationType, string description, string details, ReportingFrequency reportingFrequency) { if (string.IsNullOrWhiteSpace(description)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(description)); } Description = description; Id = id; OrganizationType = organizationType; Description = description; Details = details; ReportingFrequency = reportingFrequency; }
public Organization(string description, string details, OrganizationType organizationType, ReportingFrequency reportingFrequency, EntityReference parent) { if (string.IsNullOrWhiteSpace(description)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(description)); } Description = description; Details = details; OrganizationType = organizationType; ReportingFrequency = reportingFrequency; Parent = parent; Timestamp = ZaphodTime.UtcNow; IsDeleted = false; }
/// <summary> /// Initializes a new instance of the <see cref="SimulationOutput" /> class. /// </summary> /// <param name="reportingFrequency">reportingFrequency.</param> /// <param name="includeSqlite">Boolean to note whether a SQLite report should be requested from the simulation. (default to true).</param> /// <param name="includeHtml">Boolean to note whether an HTML report should be requested from the simulation. (default to true).</param> /// <param name="outputs">A list of EnergyPlus output names as strings, which are requested from the simulation..</param> /// <param name="summaryReports">A list of EnergyPlus summary report names as strings..</param> public SimulationOutput ( // Required parameters ReportingFrequency reportingFrequency = ReportingFrequency.Hourly, bool includeSqlite = true, bool includeHtml = true, List <string> outputs = default, List <string> summaryReports = default // Optional parameters ) : base() // BaseClass { this.ReportingFrequency = reportingFrequency; this.IncludeSqlite = includeSqlite; this.IncludeHtml = includeHtml; this.Outputs = outputs; this.SummaryReports = summaryReports; // Set non-required readonly properties with defaultValue this.Type = "SimulationOutput"; }
public CreateOrganizationCommand(string description, string details, OrganizationType organizationType, ReportingFrequency reportingFrequency, EntityReference parent) { if (string.IsNullOrWhiteSpace(description)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(description)); } Description = description; Details = details; OrganizationType = organizationType; ReportingFrequency = reportingFrequency; Parent = parent; }
public void PromotePlanToUnitReport_SavesCorrectlyWhenLastYearSubmitted(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var organizationType = OrganizationType.Unit; var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, organizationType) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var period1 = new ReportingPeriod(reportingFrequency, reportingTerm, year); var period1ReportingData = new ReportDataBuilder().Build(); var period1UnitReport = new UnitReport(description, organization, period1, period1ReportingData); s.Save(period1UnitReport); return(new { period1UnitReport, }); }); var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer, c => { var unitReport = c.GetInstance <UnitReportService>() .PromotePlanToUnitReport(testParams.period1UnitReport.Id); return(new { unitReport }); }); result.unitReport.Should().NotBeNull(); result.unitReport.Should().BeEquivalentTo(testParams.period1UnitReport, e => e.Excluding(p => p.ReportStatus)); result.unitReport.ReportStatus.Should().Be(ReportStatus.PlanPromoted); }
/// <summary> /// Initializes a new instance of the <see cref="SimulationOutput" /> class. /// </summary> /// <param name="reportingFrequency">reportingFrequency.</param> /// <param name="outputs">A list of EnergyPlus output names as strings, which are requested from the simulation..</param> /// <param name="summaryReports">A list of EnergyPlus summary report names as strings..</param> public SimulationOutput ( // Required parameters ReportingFrequency reportingFrequency = ReportingFrequency.Hourly, List <string> outputs = default, List <string> summaryReports = default // Optional parameters ) : base() // BaseClass { this.ReportingFrequency = reportingFrequency; this.Outputs = outputs; this.SummaryReports = summaryReports; // Set non-required readonly properties with defaultValue this.Type = "SimulationOutput"; // check if object is valid, only check for inherited class if (this.GetType() == typeof(SimulationOutput)) { this.IsValid(throwException: true); } }
public async Task Handle_UnitPlanCreated(ReportingFrequency reportingFrequency) { var now = DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, OrganizationType.Unit) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var evt = Test.CreateInstance <IUnitPlanCreated>(x => { x.Username = username; x.Organization = organization; x.UnitReport = DataProvider.Get <EntityReference>(); x.SerializedData = DataProvider.Get <string>(); }); return(new { evt }); }); await Endpoint.Act <LogWhenReportEventReceived>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => h.Handle(testParams.evt, ctx)); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var reportEventLog = s.Query <ReportEventLog>().Single(); reportEventLog.Should().NotBeNull(); reportEventLog.OrganizationId.Should().Be(testParams.evt.Organization.Id); reportEventLog.Timestamp.Should().Be(now); }); }
public void ReportingPeriod_Returns_AsExpected(ReportingFrequency reportingFrequency) { var now = DateTimeDbTestExtensions.SetLocalNowToRandomDate(); var startDate = now.AddYears(-2); var endDate = now.AddYears(1); var reportingPeriods = ReportingPeriod.GetReportingPeriods(startDate, endDate, reportingFrequency); if (reportingFrequency == ReportingFrequency.Yearly) { reportingPeriods.Length.Should().Be(4); reportingPeriods[0].Year.Should().Be(startDate.Year); reportingPeriods[0].ReportingTerm.Should().Be(ReportingTerm.One); reportingPeriods[0].ReportingFrequency.Should().Be(reportingFrequency); reportingPeriods[3].Year.Should().Be(endDate.Year); reportingPeriods[3].ReportingTerm.Should().Be(ReportingTerm.One); reportingPeriods[3].ReportingFrequency.Should().Be(reportingFrequency); } if (reportingFrequency == ReportingFrequency.Quarterly) { reportingPeriods.Length.Should().Be(16); reportingPeriods[0].Year.Should().Be(startDate.Year); reportingPeriods[0].ReportingTerm.Should().Be(ReportingTerm.One); reportingPeriods[0].ReportingFrequency.Should().Be(reportingFrequency); reportingPeriods[15].Year.Should().Be(endDate.Year); reportingPeriods[15].ReportingTerm.Should().Be(ReportingTerm.Four); reportingPeriods[15].ReportingFrequency.Should().Be(reportingFrequency); } if (reportingFrequency == ReportingFrequency.Monthly) { reportingPeriods.Length.Should().Be(48); reportingPeriods[0].Year.Should().Be(startDate.Year); reportingPeriods[0].ReportingTerm.Should().Be(ReportingTerm.One); reportingPeriods[0].ReportingFrequency.Should().Be(reportingFrequency); reportingPeriods[47].Year.Should().Be(endDate.Year); reportingPeriods[47].ReportingTerm.Should().Be(ReportingTerm.Twelve); reportingPeriods[47].ReportingFrequency.Should().Be(reportingFrequency); } }
private UnitReport CreateNew(string description, OrganizationReference organizationRef, ReportingTerm reportingTerm, int year, ReportingFrequency reportingFrequency, bool isAi = false) { var organization = _session.Query <Organization>().Single(o => o.Id == organizationRef.Id); if (organization.OrganizationType != OrganizationType.Unit) { throw new ArgumentException("Invalid Organization Type"); } if (reportingFrequency != organization.ReportingFrequency) { throw new ArgumentException("Invalid Reporting Frequency"); } var reportingPeriod = new ReportingPeriod(reportingFrequency, reportingTerm, year); var reportData = isAi ? GetReportDataAi(organization, reportingPeriod) : ReportData.Default(); var report = new UnitReport(description, organization, reportingPeriod, reportData); _session.Save(report); return(report); }
public ActionResult UpdateReportingFrequency(FormCollection collection) { EditReportingFrequencyModel model=new EditReportingFrequencyModel(); ResultModel resultModel=new ResultModel(); this.TryUpdateModel(model); string ErrorMessage=ReportingFrequencyAvailable(model.ReportingFrequency,model.ReportingFrequencyId); if(String.IsNullOrEmpty(ErrorMessage)==false) { ModelState.AddModelError("Name",ErrorMessage); } if(ModelState.IsValid) { ReportingFrequency reportingFrequency=AdminRepository.FindReportingFrequency(model.ReportingFrequencyId); if(reportingFrequency==null) { reportingFrequency=new ReportingFrequency(); reportingFrequency.CreatedBy=Authentication.CurrentUser.UserID; reportingFrequency.CreatedDate=DateTime.Now; } reportingFrequency.ReportingFrequency1=model.ReportingFrequency; reportingFrequency.Enabled=model.Enabled; reportingFrequency.EntityID=Authentication.CurrentEntity.EntityID; reportingFrequency.LastUpdatedBy=Authentication.CurrentUser.UserID; reportingFrequency.LastUpdatedDate=DateTime.Now; IEnumerable<ErrorInfo> errorInfo=AdminRepository.SaveReportingFrequency(reportingFrequency); if(errorInfo!=null) { resultModel.Result+=ValidationHelper.GetErrorInfo(errorInfo); } else { resultModel.Result="True||"+reportingFrequency.ReportingFrequencyID; } } else { foreach(var values in ModelState.Values.ToList()) { foreach(var err in values.Errors.ToList()) { if(string.IsNullOrEmpty(err.ErrorMessage)==false) { resultModel.Result+=err.ErrorMessage+"\n"; } } } } return View("Result",resultModel); }
public StateReportFactoryCreatePlanSavesMaterialDataIntegrationTests(ReportingFrequency reportingFrequency, ReportingTerm reportingTerm) { this.reportingFrequency = reportingFrequency; this.reportingTerm = reportingTerm; }
public ZoneReport CreateNewZonePlan(string description, OrganizationReference organizationRef, ReportingTerm reportingTerm, int year, ReportingFrequency reportingFrequency) { var organization = _session.Query <Organization>().Single(o => o.Id == organizationRef.Id); if (organization.OrganizationType != OrganizationType.Zone) { throw new ArgumentException("Invalid Organization Type"); } if (reportingFrequency != ReportingFrequency.Quarterly && reportingFrequency != ReportingFrequency.Yearly) { throw new ArgumentException("Invalid Reporting Frequency"); } var reportingPeriod = new ReportingPeriod(reportingFrequency, reportingTerm, year); var reportData = _zoneReportService.GetGeneratedData(organizationRef.Id, reportingPeriod); var report = new ZoneReport(description, organization, reportingPeriod, reportData); report.UpdateGeneratedData(reportData); _session.Save(report); return(report); }
public async Task Handle_SavesReport(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.Central) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var report = new CentralReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .Build(); report.MarkStatusAsPlanPromoted(); s.Save(report); var memberMemberData = new TestObjectBuilder <MemberData>() .Build(); var associateMemberData = new TestObjectBuilder <MemberData>() .Build(); var preliminaryMemberData = new TestObjectBuilder <MemberData>() .Build(); //Todo pass random data once supporterMember is added to the CentralReport var supporterMemberData = new TestObjectBuilder <MemberData>() .Build(); var workerMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var dawahMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var stateLeaderMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var stateOutingMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var iftarMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var learningMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var socialDawahMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var dawahGroupMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var nextGMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var cmsMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var smMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var memberMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var tafsirMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var unitMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var familyVisitMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var eidReunionMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var bbqMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var gatheringMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var otherMeetingProgramData = new TestObjectBuilder <MeetingProgramData>().Build(); var groupStudyTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var studyCircleTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var practiceDarsTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var stateLearningCampTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var quranStudyTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var quranClassTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var memorizingAyatTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var stateLearningSessionTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var stateQiyamulLailTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var studyCircleForAssociateMemberTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var hadithTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var weekendIslamicSchoolTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var memorizingHadithTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var memorizingDoaTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var otherTeachingLearningProgramData = new TestObjectBuilder <TeachingLearningProgramData>().Build(); var baitulMalFinanceData = FinanceData.Default(); var aDayMasjidProjectFinanceData = FinanceData.Default(); var masjidTableBankFinanceData = FinanceData.Default(); var qardeHasanaSocialWelfareData = SocialWelfareData.Default(); var patientVisitSocialWelfareData = SocialWelfareData.Default(); var socialVisitSocialWelfareData = SocialWelfareData.Default(); var transportSocialWelfareData = SocialWelfareData.Default(); var shiftingSocialWelfareData = SocialWelfareData.Default(); var shoppingSocialWelfareData = SocialWelfareData.Default(); var foodDistributionSocialWelfareData = SocialWelfareData.Default(); var cleanUpAustraliaSocialWelfareData = SocialWelfareData.Default(); var otherSocialWelfareData = SocialWelfareData.Default(); var bookSaleMaterialData = MaterialData.Default(); var bookDistributionMaterialData = MaterialData.Default(); var bookLibraryStockData = LibraryStockData.Default(); var otherSaleMaterialData = MaterialData.Default(); var otherDistributionMaterialData = MaterialData.Default(); var otherLibraryStockData = LibraryStockData.Default(); var vhsSaleMaterialData = MaterialData.Default(); var vhsDistributionMaterialData = MaterialData.Default(); var vhsLibraryStockData = LibraryStockData.Default(); var emailDistributionMaterialData = MaterialData.Default(); var ipdcLeafletDistributionMaterialData = MaterialData.Default(); //var bookLibraryStockData = LibraryStockData.Default(); //var vhsLibraryStockData = LibraryStockData.Default(); var comment = DataProvider.Get <string>(); ReportUpdateData centralReportUpdateData = new ReportDataBuilder() .SetMemberMemberData(memberMemberData) .SetAssociateMemberData(associateMemberData) .SetPreliminaryMemberData(preliminaryMemberData) .SetSupporterMemberData(supporterMemberData) .SetWorkerMeetingProgramData(workerMeetingProgramData) .SetDawahMeetingProgramData(dawahMeetingProgramData) .SetStateLeaderMeetingProgramData(stateLeaderMeetingProgramData) .SetStateOutingMeetingProgramData(stateOutingMeetingProgramData) .SetIftarMeetingProgramData(iftarMeetingProgramData) .SetLearningMeetingProgramData(learningMeetingProgramData) .SetSocialDawahMeetingProgramData(socialDawahMeetingProgramData) .SetDawahGroupMeetingProgramData(dawahGroupMeetingProgramData) .SetNextGMeetingProgramData(nextGMeetingProgramData) .SetCmsMeetingProgramData(cmsMeetingProgramData) .SetSmMeetingProgramData(smMeetingProgramData) .SetMemberMeetingProgramData(memberMeetingProgramData) .SetTafsirMeetingProgramData(tafsirMeetingProgramData) .SetUnitMeetingProgramData(unitMeetingProgramData) .SetFamilyVisitMeetingProgramData(familyVisitMeetingProgramData) .SetEidReunionMeetingProgramData(eidReunionMeetingProgramData) .SetBbqMeetingProgramData(bbqMeetingProgramData) .SetGatheringMeetingProgramData(gatheringMeetingProgramData) .SetOtherMeetingProgramData(otherMeetingProgramData) .SetGroupStudyTeachingLearningProgramData(groupStudyTeachingLearningProgramData) .SetStudyCircleTeachingLearningProgramData(studyCircleTeachingLearningProgramData) .SetPracticeDarsTeachingLearningProgramData(practiceDarsTeachingLearningProgramData) .SetStateLearningCampTeachingLearningProgramData(stateLearningCampTeachingLearningProgramData) .SetQuranStudyTeachingLearningProgramData(quranStudyTeachingLearningProgramData) .SetQuranClassTeachingLearningProgramData(quranClassTeachingLearningProgramData) .SetMemorizingAyatTeachingLearningProgramData(memorizingAyatTeachingLearningProgramData) .SetStateLearningSessionTeachingLearningProgramData(stateLearningSessionTeachingLearningProgramData) .SetStateQiyamulLailTeachingLearningProgramData(stateQiyamulLailTeachingLearningProgramData) .SetBaitulMalFinanceData(baitulMalFinanceData) .SetADayMasjidProjectFinanceData(aDayMasjidProjectFinanceData) .SetMasjidTableBankFinanceData(masjidTableBankFinanceData) .SetQardeHasanaSocialWelfareData(qardeHasanaSocialWelfareData) .SetPatientVisitSocialWelfareData(patientVisitSocialWelfareData) .SetSocialVisitSocialWelfareData(socialVisitSocialWelfareData) .SetTransportSocialWelfareData(transportSocialWelfareData) .SetShiftingSocialWelfareData(shiftingSocialWelfareData) .SetShoppingSocialWelfareData(shoppingSocialWelfareData) .SetFoodDistributionSocialWelfareData(foodDistributionSocialWelfareData) .SetCleanUpAustraliaSocialWelfareData(cleanUpAustraliaSocialWelfareData) .SetOtherSocialWelfareData(otherSocialWelfareData) .SetBookSaleMaterialData(bookSaleMaterialData) .SetBookDistributionMaterialData(bookDistributionMaterialData) .SetBookLibraryStockData(bookLibraryStockData) .SetOtherSaleMaterialData(otherSaleMaterialData) .SetOtherDistributionMaterialData(otherDistributionMaterialData) .SetOtherLibraryStockData(otherLibraryStockData) .SetVhsSaleMaterialData(vhsSaleMaterialData) .SetVhsDistributionMaterialData(vhsDistributionMaterialData) .SetVhsLibraryStockData(vhsLibraryStockData) .SetEmailDistributionMaterialData(emailDistributionMaterialData) .SetIpdcLeafletDistributionMaterialData(ipdcLeafletDistributionMaterialData) .SetGroupStudyTeachingLearningProgramData(groupStudyTeachingLearningProgramData) .SetStudyCircleTeachingLearningProgramData(studyCircleTeachingLearningProgramData) .SetPracticeDarsTeachingLearningProgramData(practiceDarsTeachingLearningProgramData) .SetStateLearningCampTeachingLearningProgramData(stateLearningCampTeachingLearningProgramData) .SetQuranStudyTeachingLearningProgramData(quranStudyTeachingLearningProgramData) .SetQuranClassTeachingLearningProgramData(quranClassTeachingLearningProgramData) .SetMemorizingAyatTeachingLearningProgramData(memorizingAyatTeachingLearningProgramData) .SetStateLearningSessionTeachingLearningProgramData(stateLearningSessionTeachingLearningProgramData) .SetStateQiyamulLailTeachingLearningProgramData(stateQiyamulLailTeachingLearningProgramData) .SetStudyCircleForAssociateMemberTeachingLearningProgramData(studyCircleForAssociateMemberTeachingLearningProgramData) .SetHadithTeachingLearningProgramData(hadithTeachingLearningProgramData) .SetWeekendIslamicSchoolTeachingLearningProgramData(weekendIslamicSchoolTeachingLearningProgramData) .SetMemorizingHadithTeachingLearningProgramData(memorizingHadithTeachingLearningProgramData) .SetMemorizingDoaTeachingLearningProgramData(memorizingDoaTeachingLearningProgramData) .SetOtherTeachingLearningProgramData(otherTeachingLearningProgramData) .SetComment(comment) .Build(); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <ICentralReportUpdated>(e => { e.Organization = organization; e.Username = username; e.CentralReport = reportRef; }); return(new { Cmd = new UpdateCentralReportCommand(report.Id, centralReportUpdateData), Report = report, username, expectedEvt }); }); var context = await Endpoint.Act <UpdateCentralReportCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <ICentralReportUpdated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var centralReport = s.Get <CentralReport>(testParams.Cmd.ReportId); centralReport.Should().NotBeNull(); centralReport.Should().BeEquivalentTo(testParams.Report, e => e.Excluding(p => p.MemberMemberData) .Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.SupporterMemberData) .Excluding(p => p.WorkerMeetingProgramData) .Excluding(p => p.DawahMeetingProgramData) .Excluding(p => p.StateLeaderMeetingProgramData) .Excluding(p => p.StateOutingMeetingProgramData) .Excluding(p => p.IftarMeetingProgramData) .Excluding(p => p.LearningMeetingProgramData) .Excluding(p => p.SocialDawahMeetingProgramData) .Excluding(p => p.DawahGroupMeetingProgramData) .Excluding(p => p.NextGMeetingProgramData) .Excluding(p => p.CmsMeetingProgramData) .Excluding(p => p.SmMeetingProgramData) .Excluding(p => p.MemberMeetingProgramData) .Excluding(p => p.TafsirMeetingProgramData) .Excluding(p => p.UnitMeetingProgramData) .Excluding(p => p.FamilyVisitMeetingProgramData) .Excluding(p => p.EidReunionMeetingProgramData) .Excluding(p => p.BbqMeetingProgramData) .Excluding(p => p.GatheringMeetingProgramData) .Excluding(p => p.OtherMeetingProgramData) .Excluding(p => p.GroupStudyTeachingLearningProgramData) .Excluding(p => p.StudyCircleTeachingLearningProgramData) .Excluding(p => p.PracticeDarsTeachingLearningProgramData) .Excluding(p => p.StateLearningCampTeachingLearningProgramData) .Excluding(p => p.QuranStudyTeachingLearningProgramData) .Excluding(p => p.QuranClassTeachingLearningProgramData) .Excluding(p => p.MemorizingAyatTeachingLearningProgramData) .Excluding(p => p.StateLearningSessionTeachingLearningProgramData) .Excluding(p => p.StateQiyamulLailTeachingLearningProgramData) .Excluding(p => p.StudyCircleForAssociateMemberTeachingLearningProgramData) .Excluding(p => p.HadithTeachingLearningProgramData) .Excluding(p => p.WeekendIslamicSchoolTeachingLearningProgramData) .Excluding(p => p.MemorizingHadithTeachingLearningProgramData) .Excluding(p => p.MemorizingDoaTeachingLearningProgramData) .Excluding(p => p.OtherTeachingLearningProgramData) .Excluding(p => p.BookSaleMaterialData) .Excluding(p => p.BookDistributionMaterialData) .Excluding(p => p.BookLibraryStockData) .Excluding(p => p.OtherSaleMaterialData) .Excluding(p => p.OtherDistributionMaterialData) .Excluding(p => p.OtherLibraryStockData) .Excluding(p => p.VhsSaleMaterialData) .Excluding(p => p.VhsDistributionMaterialData) .Excluding(p => p.VhsLibraryStockData) .Excluding(p => p.EmailDistributionMaterialData) .Excluding(p => p.IpdcLeafletDistributionMaterialData) .Excluding(p => p.BaitulMalFinanceData) .Excluding(p => p.ADayMasjidProjectFinanceData) .Excluding(p => p.MasjidTableBankFinanceData) .Excluding(p => p.QardeHasanaSocialWelfareData) .Excluding(p => p.PatientVisitSocialWelfareData) .Excluding(p => p.SocialVisitSocialWelfareData) .Excluding(p => p.TransportSocialWelfareData) .Excluding(p => p.ShiftingSocialWelfareData) .Excluding(p => p.ShoppingSocialWelfareData) .Excluding(p => p.FoodDistributionSocialWelfareData) .Excluding(p => p.CleanUpAustraliaSocialWelfareData) .Excluding(p => p.OtherSocialWelfareData) .Excluding(p => p.Comment) ); ReportData reportData = centralReport; ReportUpdateData reportUpdateData = reportData; reportUpdateData.Should().BeEquivalentTo(testParams.Cmd.ReportUpdateData); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public async Task Handle_SavesPlan(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.State) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var associateMemberData = new TestObjectBuilder <MemberData>() .Build(); var preliminaryMemberData = new TestObjectBuilder <MemberData>() .Build(); PlanData planData = new ReportDataBuilder() .SetAssociateMemberData(associateMemberData) .SetPreliminaryMemberData(preliminaryMemberData) .Build(); var report = new StateReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); report.UpdatePlan(planData); s.Save(report); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IStatePlanPromoted>(e => { e.Organization = organization; e.Username = username; e.StateReport = reportRef; }); return(new { Cmd = new PromotePlanToStateReportCommand(report.Id), Report = report, username, expectedEvt }); }); var context = await Endpoint.Act <PromotePlanToStateReportCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IStatePlanPromoted>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var stateReport = s.Get <StateReport>(testParams.Cmd.PlanId); stateReport.Should().NotBeNull(); stateReport.Should().BeEquivalentTo(testParams.Report, e => e.Excluding(p => p.ReportStatus)); stateReport.ReportStatus.Should().Be(ReportStatus.PlanPromoted); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public OrganizationBuilder SetReportingFreQuency(ReportingFrequency reportingFrequency) { _reportFrequency = reportingFrequency; return(this); }
public void CreateNewUnitPlanAi_SavesCorrectlyWhenLastYearSubmitted(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var organizationType = OrganizationType.Unit; var description = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, organizationType) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); OrganizationReference organizationRef = organization; var reportingPeriod = new ReportingPeriod(reportingFrequency, reportingTerm, year); var lastPeriod1 = reportingPeriod.GetReportingPeriodOfPreviousTerm(); var lastPeriod1ReportingData = new ReportDataBuilder().Build(); var lastPeriod1UnitReport = new UnitReport(description, organization, lastPeriod1, lastPeriod1ReportingData); lastPeriod1UnitReport.MarkStatusAsSubmitted(); s.Save(lastPeriod1UnitReport); var lastPeriod2 = lastPeriod1.GetReportingPeriodOfPreviousTerm(); var lastPeriod2ReportingData = new ReportDataBuilder().Build(); var lastPeriod2UnitReport = new UnitReport(description, organization, lastPeriod2, lastPeriod2ReportingData); lastPeriod2UnitReport.MarkStatusAsSubmitted(); s.Save(lastPeriod2UnitReport); var expected = new UnitReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .Build(); return(new { description, organizationRef, reportingPeriod, lastPeriod1UnitReport, expected }); }); var result = Endpoint.Act(AssemblySetupFixture.EndpointTestContainer, c => { var unitReport = c.GetInstance <UnitReportFactory>() .CreateNewUnitPlanAi(testParams.description, testParams.organizationRef, testParams.reportingPeriod.ReportingTerm, testParams.reportingPeriod.Year, reportingFrequency); return(new { unitReport }); }); result.unitReport.Should().NotBeNull(); result.unitReport.Should().BeEquivalentTo(testParams.expected, e => e.Excluding(p => p.Id) .Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.WorkerMeetingProgramData) .Excluding(p => p.SupporterMemberData) .Excluding(p => p.DawahMeetingProgramData) .Excluding(p => p.MemberMemberData)); TestHelper.MemberDataForCreateUnitPlanShouldBeEquivalent(result.unitReport.AssociateMemberData, testParams.lastPeriod1UnitReport.AssociateMemberData); TestHelper.MemberDataForCreateUnitPlanShouldBeEquivalent(result.unitReport.PreliminaryMemberData, testParams.lastPeriod1UnitReport.PreliminaryMemberData); result.unitReport.PreliminaryMemberData.Should().BeEquivalentTo(testParams.lastPeriod1UnitReport.WorkerMeetingProgramData); }
public async Task Handle_SavesZoneReport(ReportingFrequency reportingFrequency, ReportingFrequency differentFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new TestObjectBuilder <Organization>() .SetArgument(o => o.OrganizationType, OrganizationType.Zone) .SetArgument(o => o.ReportingFrequency, reportingFrequency) .BuildAndPersist(s); var existing = new ZoneReportBuilder() .SetDescription(DataProvider.Get <string>()) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); var newReportYear = year + 1; new ZoneReportBuilder() .SetDescription(DataProvider.Get <string>()) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(differentFrequency, reportingTerm, newReportYear)) .BuildAndPersist(s); var cmd = new CopyZonePlanCommand(existing.Id, organization, newReportYear, reportingTerm, reportingFrequency); var description = cmd.Description; var lastPeriodData = Calculator.GetLastPeriodUpdateData(existing); var expected = new ZoneReportBuilder() .SetDescription(description) .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, newReportYear)) .SetReportData(existing) .Build(); expected.Update(lastPeriodData); return(new { cmd, username, expected }); }); var context = await Endpoint.Act <CopyZonePlanCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.cmd, ctx)); }); var evt = context.ExpectPublish <IZonePlanCopied>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var report = s.Query <ZoneReport>().OrderByDescending(o => o.Id).First(); report.Should().NotBeNull(); report.Should().BeEquivalentTo(testParams.expected, e => e.Excluding(p => p.Id) .Excluding(p => p.ReportingPeriod) .Excluding(p => p.ReportStatus)); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IZonePlanCopied>(e => { e.Organization = testParams.expected.Organization; e.Username = testParams.username; e.ZoneReport = reportRef; }); evt.Should().BeEquivalentTo(expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public async Task Handle_SavesReportWhenNoPreviousReportSubmitted(ReportingFrequency reportingFrequency, bool overrideReportData) { var now = DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.Zone) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var report = new ZoneReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .Build(); report.MarkStatusAsPlanPromoted(); s.Save(report); var generatedData = GetZoneReportData(); report.UpdateGeneratedData(generatedData); report.Update(generatedData); s.Save(report); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IZoneReportUpdated>(e => { e.Organization = organization; e.Username = username; e.ZoneReport = reportRef; }); return(new { Cmd = new UpdateZoneReportGeneratedDataCommand(report.Id, overrideReportData), Organization = organization, Report = report, zoneReportData = generatedData, overrideReportData, username, expectedEvt }); }); var context = await Endpoint.Act <UpdateZoneReportGeneratedDataCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IZoneReportUpdated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var report = s.Get <Report>(testParams.Cmd.ReportId); report.Should().NotBeNull(); report.Description.Should().Be(testParams.Report.Description); report.ReportingPeriod.Year.Should().Be(testParams.Report.ReportingPeriod.Year); report.ReportingPeriod.ReportingFrequency.Should().Be(testParams.Organization.ReportingFrequency); report.ReportingPeriod.ReportingTerm.Should().Be(testParams.Report.ReportingPeriod.ReportingTerm); report.Organization.Should().Be(testParams.Report.Organization); report.ReportStatus.Should().Be(ReportStatus.PlanPromoted); report.Timestamp.Should().Be(now); report.IsDeleted.Should().Be(false); var zoneReport = s.Get <ZoneReport>(testParams.Cmd.ReportId); zoneReport.Should().NotBeNull(); zoneReport.Description.Should().Be(testParams.Report.Description); zoneReport.ReportingPeriod.Year.Should().Be(testParams.Report.ReportingPeriod.Year); zoneReport.ReportingPeriod.ReportingFrequency.Should() .Be(testParams.Organization.ReportingFrequency); zoneReport.ReportingPeriod.ReportingTerm.Should() .Be(testParams.Report.ReportingPeriod.ReportingTerm); zoneReport.Organization.Should().Be(testParams.Report.Organization); //zoneReport.AssociateMemberData.Should().Be(overrideReportData // ? MemberData.Default() // : testParams.zoneReportData.AssociateMemberData); //zoneReport.AssociateMemberGeneratedData.Should().Be(MemberData.Default()); //zoneReport.PreliminaryMemberData.Should().Be(overrideReportData // ? MemberData.Default() // : testParams.zoneReportData.PreliminaryMemberData); //zoneReport.PreliminaryMemberGeneratedData.Should().Be(MemberData.Default()); //zoneReport.WorkerMeetingProgramData.Should().Be(overrideReportData // ? MeetingProgramData.Default() // : testParams.zoneReportData.WorkerMeetingProgramData); //zoneReport.WorkerMeetingProgramGeneratedData.Should().Be(MeetingProgramData.Default()); zoneReport.Timestamp.Should().Be(now); zoneReport.IsDeleted.Should().Be(false); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
private string GetReportingFrequencyDescription() { return(ReportingFrequency.ToString()); }
public async Task Handle_SavesPlan(ReportingFrequency reportingFrequency) { DateTimeDbTestExtensions.SetUtcNowToRandomDate(); var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer, s => { var username = DataProvider.Get <string>(); var year = 2019; var reportingTerm = ReportingTerm.One; var organization = new OrganizationBuilder() .SetOrganizationType(OrganizationType.Unit) .SetReportingFreQuency(reportingFrequency) .BuildAndPersist(s); var report = new UnitReportBuilder() .SetOrganization(organization) .SetReportingPeriod(new ReportingPeriod(reportingFrequency, reportingTerm, year)) .BuildAndPersist(s); var associateMemberData = new TestObjectBuilder <MemberData>() .Build(); var preliminaryMemberData = new TestObjectBuilder <MemberData>() .Build(); var workerMeetingProgramData = new TestObjectBuilder <MeetingProgramData>() .Build(); var supporterMemberData = new TestObjectBuilder <MemberData>() .Build(); var memberMemberData = new TestObjectBuilder <MemberData>() .Build(); PlanData planData = new ReportDataBuilder() .SetAssociateMemberData(associateMemberData) .SetPreliminaryMemberData(preliminaryMemberData) .SetWorkerMeetingProgramData(workerMeetingProgramData) .SetSupporterMemberData(supporterMemberData) .SetMemberMemberData(memberMemberData) .Build(); EntityReference reportRef = report; var expectedEvt = Test.CreateInstance <IUnitPlanUpdated>(e => { e.Organization = organization; e.Username = username; e.UnitReport = reportRef; }); return(new { Cmd = new UpdateUnitPlanCommand(report.Id, planData), Organization = organization, Report = report, username, expectedEvt }); }); var context = await Endpoint.Act <UpdateUnitPlanCommandHandler>(AssemblySetupFixture.EndpointTestContainer, (h, ctx) => { ctx.SetUsernameOnHeader(testParams.username); return(h.Handle(testParams.Cmd, ctx)); }); var evt = context.ExpectPublish <IUnitPlanUpdated>(); Endpoint.AssertOnSqlSessionThat(AssemblySetupFixture.EndpointTestContainer, s => { var unitReport = s.Get <UnitReport>(testParams.Cmd.ReportId); unitReport.Should().NotBeNull(); unitReport.Should().BeEquivalentTo(testParams.Report, e => e.Excluding(p => p.AssociateMemberData) .Excluding(p => p.PreliminaryMemberData) .Excluding(p => p.SupporterMemberData) .Excluding(p => p.WorkerMeetingProgramData) .Excluding(p => p.DawahMeetingProgramData) .Excluding(p => p.StateLeaderMeetingProgramData) .Excluding(p => p.StateOutingMeetingProgramData) .Excluding(p => p.IftarMeetingProgramData) .Excluding(p => p.LearningMeetingProgramData) .Excluding(p => p.SocialDawahMeetingProgramData) .Excluding(p => p.DawahGroupMeetingProgramData) .Excluding(p => p.NextGMeetingProgramData) .Excluding(p => p.CmsMeetingProgramData) .Excluding(p => p.SmMeetingProgramData) .Excluding(p => p.MemberMeetingProgramData) .Excluding(p => p.TafsirMeetingProgramData) .Excluding(p => p.UnitMeetingProgramData) .Excluding(p => p.FamilyVisitMeetingProgramData) .Excluding(p => p.EidReunionMeetingProgramData) .Excluding(p => p.BbqMeetingProgramData) .Excluding(p => p.GatheringMeetingProgramData) .Excluding(p => p.OtherMeetingProgramData) .Excluding(p => p.MemberMemberData) .Excluding(p => p.BaitulMalFinanceData) .Excluding(p => p.ADayMasjidProjectFinanceData) .Excluding(p => p.MasjidTableBankFinanceData) .Excluding(p => p.QardeHasanaSocialWelfareData) .Excluding(p => p.PatientVisitSocialWelfareData) .Excluding(p => p.SocialVisitSocialWelfareData) .Excluding(p => p.TransportSocialWelfareData) .Excluding(p => p.ShiftingSocialWelfareData) .Excluding(p => p.ShoppingSocialWelfareData) .Excluding(p => p.FoodDistributionSocialWelfareData) .Excluding(p => p.CleanUpAustraliaSocialWelfareData) .Excluding(p => p.OtherSocialWelfareData) .Excluding(p => p.BookSaleMaterialData) .Excluding(p => p.BookDistributionMaterialData) .Excluding(p => p.BookLibraryStockData) .Excluding(p => p.OtherSaleMaterialData) .Excluding(p => p.OtherDistributionMaterialData) .Excluding(p => p.OtherLibraryStockData) .Excluding(p => p.VhsSaleMaterialData) .Excluding(p => p.VhsDistributionMaterialData) .Excluding(p => p.VhsLibraryStockData) .Excluding(p => p.EmailDistributionMaterialData) .Excluding(p => p.IpdcLeafletDistributionMaterialData) .Excluding(p => p.GroupStudyTeachingLearningProgramData) .Excluding(p => p.StudyCircleTeachingLearningProgramData) .Excluding(p => p.PracticeDarsTeachingLearningProgramData) .Excluding(p => p.StateLearningCampTeachingLearningProgramData) .Excluding(p => p.QuranStudyTeachingLearningProgramData) .Excluding(p => p.QuranClassTeachingLearningProgramData) .Excluding(p => p.MemorizingAyatTeachingLearningProgramData) .Excluding(p => p.StateLearningSessionTeachingLearningProgramData) .Excluding(p => p.StateQiyamulLailTeachingLearningProgramData) // .Excluding(p => p.StudyCircleForAssociateMemberTeachingLearningProgramData) .Excluding(p => p.HadithTeachingLearningProgramData) .Excluding(p => p.WeekendIslamicSchoolTeachingLearningProgramData) .Excluding(p => p.MemorizingHadithTeachingLearningProgramData) .Excluding(p => p.MemorizingDoaTeachingLearningProgramData) .Excluding(p => p.OtherTeachingLearningProgramData) ); ReportData reportData = unitReport; PlanData planData = reportData; planData.Should().BeEquivalentTo(testParams.Cmd.PlanData); evt.Should().BeEquivalentTo(testParams.expectedEvt, e => e.Excluding(p => p.SerializedData)); evt.SerializedData.Should().NotBe(null); }); }
public StateReportFactoryCreateNewPlanSavesLibraryStockDataIntegrationTests(ReportingFrequency reportingFrequency, ReportingTerm reportingTerm) { this.reportingFrequency = reportingFrequency; this.reportingTerm = reportingTerm; }