Пример #1
0
        public void GetUnitPlanViewModel_Should_Return_Result()
        {
            DateTimeDbTestExtensions.SetUtcNowToRandomDate();
            var username = DataProvider.Get <string>();

            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var unitReport = new UnitReportBuilder()
                                 .BuildAndPersist(s);
                var unitReportViewModel = TestHelper.ConvertToUnitPlanViewModel(unitReport);

                TestHelper.SetUserAccessAllOrganizationsClaim(username);

                return(unitReportViewModel);
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <IUnitReportQueryService>()
                                        .GetUnitPlanViewModel(testParams.Id));

            result.Should().NotBeNull();
            //-- after finding the issue it will be removed
            result.BookLibraryStockPlanData  = ValueObjects.LibraryStockData.Default();
            result.VhsLibraryStockPlanData   = ValueObjects.LibraryStockData.Default();
            result.OtherLibraryStockPlanData = ValueObjects.LibraryStockData.Default();
            //---------
            result.Should().BeEquivalentTo(testParams);
        }
        public void Has_Central_Should_Return_CorrectResult(bool isCentralUser)
        {
            var username = DataProvider.Get <string>();

            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var reportingFrequency = ReportingFrequency.Monthly;

                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations(
                    stateReportingFrequency: reportingFrequency,
                    zoneReportingFrequency: ReportingFrequency.Monthly);
                var central = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Central).Value;
                var nsw     = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswState).Value;

                var organizationUser1 = new TestObjectBuilder <OrganizationUser>()
                                        .SetArgument(o => o.Username, username)
                                        .SetArgument(o => o.Organization, isCentralUser?central: nsw)
                                        .BuildAndPersist(s);


                new UserContextBuilder()
                .SetUsername(username)
                .AddClaims(TestHelper.GetOrganizationClaims(username, new[] { organizationUser1 }))
                .SetCurrentPrincipal();

                return(new { organizationUser1 });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <OrganizationUserQueryService>()
                                        .HasCentralAccess(testParams.organizationUser1.Username));

            result.Should().Be(isCentralUser);
        }
        public void GetManagedOrganizationViewModel_For_Zone_Should_Return_CorrectResult()
        {
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var reportingFrequency = ReportingFrequency.Monthly;

                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations(
                    stateReportingFrequency: reportingFrequency,
                    zoneReportingFrequency: ReportingFrequency.Monthly);
                var zone = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswZoneOne).Value;

                return(new
                {
                    organizations,
                    zone
                });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <OrganizationQueryService>()
                                        .GetOrganizationViewModel(testParams.zone.Id));

            result.Should().NotBeNull();
            result.ManagedOrganizations.Count().Should().Be(2);
        }
Пример #4
0
        public void GetUnitReportViewModel_Should_Return_Result()
        {
            DateTimeDbTestExtensions.SetUtcNowToRandomDate();
            var username   = DataProvider.Get <string>();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var unitReport = new UnitReportBuilder()
                                 .Build();
                unitReport.MarkStatusAsSubmitted();
                s.Save(unitReport);

                var submittedUnitReportViewModel = TestHelper.ConvertToUnitReportViewModel(unitReport);

                TestHelper.SetUserAccessAllOrganizationsClaim(username);
                return(submittedUnitReportViewModel);
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <UnitReportQueryService>()
                                        .GetUnitReportViewModel(testParams.Id));

            result.Should().NotBeNull();
            result.Should().BeEquivalentTo(testParams);
        }
        public void GetMyOrganizations_For_CentralUser_Should_Return_CorrectResult()
        {
            var username   = DataProvider.Get <string>();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var reportingFrequency = ReportingFrequency.Monthly;

                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations(
                    stateReportingFrequency: reportingFrequency,
                    zoneReportingFrequency: ReportingFrequency.Monthly);

                TestHelper.SetUserAccessAllOrganizationsClaim(username);

                return(new
                {
                    organizations,
                });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <OrganizationQueryService>()
                                        .GetMyOrganizations());

            result.Should().NotBeNull();
            result.Length.Should().Be(testParams.organizations.Count);
        }
        public void GetManagedOrganizationIds_For_Central_Should_Return_CorrectResult()
        {
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var reportingFrequency = ReportingFrequency.Monthly;

                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations(
                    stateReportingFrequency: reportingFrequency,
                    zoneReportingFrequency: ReportingFrequency.Monthly);
                var central = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Central).Value;

                return(new
                {
                    organizations,
                    central
                });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <OrganizationQueryService>()
                                        .GetManagedOrganizationIds(testParams.central.Id));

            result.Should().NotBeNull();
            result.Length.Should().Be(7);
        }
Пример #7
0
        public void SearchReportEventLog_Should_Return_NoResult_For_No_OrganizationClaims_Assigned_To_User()
        {
            var username1 = DataProvider.Get <string>();
            var username2 = DataProvider.Get <string>();

            Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                         s =>
            {
                EntityReference organization1 = new OrganizationBuilder().BuildAndPersist(s);
                EntityReference organization2 = new OrganizationBuilder().BuildAndPersist(s);

                new TestObjectBuilder <OrganizationUser>()
                .SetArgument(o => o.Username, username1)
                .SetArgument(o => o.Organization, organization1)
                .BuildAndPersist(s);

                new TestObjectBuilder <ReportEventLog>()
                .SetArgument(o => o.CreatedByUsername, username1)
                .SetArgument(o => o.OrganizationId, null)
                .BuildAndPersist(s);

                new TestObjectBuilder <ReportEventLog>()
                .SetArgument(o => o.CreatedByUsername, username1)
                .SetArgument(o => o.OrganizationId, organization1.Id)
                .BuildAndPersist(s);

                new TestObjectBuilder <ReportEventLog>()
                .SetArgument(o => o.CreatedByUsername, username1)
                .SetArgument(o => o.OrganizationId, organization2.Id)
                .BuildAndPersist(s);

                new TestObjectBuilder <ReportEventLog>()
                .SetArgument(o => o.CreatedByUsername, username2)
                .SetArgument(o => o.OrganizationId, organization2.Id)
                .BuildAndPersist(s);

                new UserContextBuilder()
                .SetUsername(username1)
                .AddClaims(TestHelper.GetOrganizationClaims(username1, new OrganizationUser[0]))
                .SetCurrentPrincipal();
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <IReportEventLogQueryService>()
                                        .SearchReportEventLog(new ReportEventLogSearchTerms()));

            result.Should().NotBeNull();
            result.Items.Length.Should().Be(0);
        }
        public void GetMyOrganizations_For_User_Should_Return_CorrectResult(OrganizationType organizationType)
        {
            var username   = DataProvider.Get <string>();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var reportingFrequency = ReportingFrequency.Monthly;

                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations(
                    stateReportingFrequency: reportingFrequency,
                    zoneReportingFrequency: ReportingFrequency.Monthly);

                var state = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswState).Value;
                var unit  = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Footscray).Value;



                var organizationUser1 = new TestObjectBuilder <OrganizationUser>()
                                        .SetArgument(o => o.Username, username)
                                        .SetArgument(o => o.Organization, organizationType == OrganizationType.State? state : unit)
                                        .BuildAndPersist(s);

                new UserContextBuilder()
                .SetUsername(username)
                .AddClaims(TestHelper.GetOrganizationClaims(username, new[] { organizationUser1 }))
                .SetCurrentPrincipal();
                return(new
                {
                    state,
                    unit
                });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <OrganizationQueryService>()
                                        .GetMyOrganizations());

            var organizationId = organizationType == OrganizationType.State ? testParams.state.Id : testParams.unit.Id;

            result.Should().NotBeNull();
            result.Where(o => o.Id == organizationId).Should().NotBeNull();
        }
Пример #9
0
        public void SearchReportEventLog_Should_Return_Result()
        {
            var username   = DataProvider.Get <string>();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                EntityReference organization1 = new OrganizationBuilder().BuildAndPersist(s);
                EntityReference organization2 = new OrganizationBuilder().BuildAndPersist(s);

                var organizationUser1 = new TestObjectBuilder <OrganizationUser>()
                                        .SetArgument(o => o.Username, username)
                                        .SetArgument(o => o.Organization, organization1)
                                        .BuildAndPersist(s);

                var reportEventLog = new TestObjectBuilder <ReportEventLog>()
                                     .SetArgument(o => o.CreatedByUsername, username)
                                     .SetArgument(o => o.OrganizationId, organization1.Id)
                                     .BuildAndPersist(s);

                new TestObjectBuilder <ReportEventLog>()
                .SetArgument(o => o.CreatedByUsername, username)
                .SetArgument(o => o.OrganizationId, organization2.Id)
                .BuildAndPersist(s);

                new UserContextBuilder()
                .SetUsername(username)
                .AddClaims(TestHelper.GetOrganizationClaims(username, new [] { organizationUser1 }))
                .SetCurrentPrincipal();

                return(new { reportEventLog, organizationUser1 });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <IReportEventLogQueryService>()
                                        .SearchReportEventLog(new ReportEventLogSearchTerms()));

            result.Should().NotBeNull();
            result.Items.Length.Should().Be(1);
            result.Items[0].CreatedByUsername.Should().Be(testParams.organizationUser1.Username);
            result.Items[0].OrganizationId.Should().Be(testParams.organizationUser1.Organization.Id);
        }
Пример #10
0
        public void GetCentralPlanViewModel_Should_Return_Result()
        {
            DateTimeDbTestExtensions.SetUtcNowToRandomDate();
            var username = DataProvider.Get <string>();

            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var centralReport = new CentralReportBuilder()
                                    .BuildAndPersist(s);
                var centralPlanViewModel = TestHelper.ConvertToCentralPlanViewModel(centralReport);

                TestHelper.SetUserAccessAllOrganizationsClaim(username);
                return(centralPlanViewModel);
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c => c.GetInstance <ICentralReportQueryService>()
                                        .GetCentralPlanViewModel(testParams.Id));

            result.Should().NotBeNull();
            result.Should().BeEquivalentTo(testParams);
        }
        public void GetReportingPeriodsToCreatePlan_For_User_Should_Return_CorrectResult(OrganizationType organizationType)
        {
            DateTimeDbTestExtensions.SetLocalNowToRandomDate();
            var username   = DataProvider.Get <string>();
            var testParams = Endpoint.ArrangeOnSqlSession(AssemblySetupFixture.EndpointTestContainer,
                                                          s =>
            {
                var organizations = IntegrationTestOrganizationHelper.SetupOrzanizations();

                var central = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Central).Value;
                var state   = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswState).Value;
                var zone    = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.NswZoneOne).Value;
                var unit    = organizations.First(o => o.Key == IntegrationTestOrganizationHelper.Footscray).Value;

                EntityReference sut = null;
                switch (organizationType)
                {
                case OrganizationType.Central:
                    sut = central;
                    break;

                case OrganizationType.State:
                    sut = state;
                    break;

                case OrganizationType.Zone:
                    sut = zone;
                    break;

                default:
                    sut = unit;
                    break;
                }

                var organizationUser1 = new TestObjectBuilder <OrganizationUser>()
                                        .SetArgument(o => o.Username, username)
                                        .SetArgument(o => o.Organization, sut)
                                        .BuildAndPersist(s);

                new UserContextBuilder()
                .SetUsername(username)
                .AddClaims(TestHelper.GetOrganizationClaims(username, new[] { organizationUser1 }))
                .SetCurrentPrincipal();


                return(new
                {
                    sut
                });
            });

            var result = NsbWebTest.Act(AssemblySetupFixture.WebTestContainer,
                                        c =>
            {
                return(c.GetInstance <OrganizationQueryService>()
                       .GetReportingPeriods(testParams.sut.Id));
            });

            if (organizationType == OrganizationType.Unit)
            {
                result.Length.Should().Be(36);
                var activeReportPeriod = result.Single(o => o.IsActive);
                activeReportPeriod.Should().NotBeNull();
            }
            else
            {
                result.Length.Should().Be(20);
                var activeAnnualReportPeriod = result.Single(o => o.IsActive && o.ReportingFrequency == ReportingFrequency.Yearly);
                activeAnnualReportPeriod.Should().NotBeNull();

                var activeQuarterlyReportPeriod = result.Single(o => o.IsActive && o.ReportingFrequency == ReportingFrequency.Quarterly);
                activeQuarterlyReportPeriod.Should().NotBeNull();
            }
        }