public void BestimmeKontingent_AktiveAuftraege_Should_Not_BeCalculatedFromOrderings_When_Ordering_Is_Not_Digitalisierung(OrderType orderType)
        {
            // arrange
            var setting           = new DigitalisierungsbeschraenkungSettings();
            var itemsFromOrdering = new List <OrderItem>
            {
                new OrderItem
                {
                    Status = OrderStatesInternal.FreigabePruefen
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.Ausgeliehen
                }
            };

            var orderings = new List <Ordering>
            {
                new Ordering
                {
                    Type  = orderType,
                    Items = itemsFromOrdering.ToArray()
                }
            };

            var sut = new KontingentBestimmer(setting);

            // act
            var result = sut.BestimmeKontingent(orderings, AccessRolesEnum.Ö2, new User());

            // assert
            result.AktiveDigitalisierungsauftraege.Should().Be(0);
        }
        public void BestimmeKontingent_Bestellkontingent_Should_Be_Zero_When_Orderings_Equals_Threshold()
        {
            // arrange
            var setting = new DigitalisierungsbeschraenkungSettings {
                DigitalisierungsbeschraenkungBvw = 2
            };

            var itemsFromOrdering = new List <OrderItem>
            {
                new OrderItem
                {
                    Status = OrderStatesInternal.FreigabePruefen // Zählt
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.FuerDigitalisierungBereit // Zählt
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.Abgebrochen // Zählt nicht
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.DigitalisierungAbgebrochen // Zählt nicht
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.ZumReponierenBereit // Zählt nicht
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.Abgeschlossen // Zählt nicht
                }
            };
            var orderings = new List <Ordering>
            {
                new Ordering
                {
                    Type  = OrderType.Digitalisierungsauftrag, // zählt
                    Items = itemsFromOrdering.ToArray()
                },
                new Ordering
                {
                    Type  = OrderType.Einsichtsgesuch, // zählt nicht
                    Items = itemsFromOrdering.ToArray()
                }
            };

            var sut = new KontingentBestimmer(setting);

            // act
            var result = sut.BestimmeKontingent(orderings, AccessRolesEnum.BVW, new User());

            // assert
            result.AktiveDigitalisierungsauftraege.Should().Be(2);
            result.Digitalisierungesbeschraenkung.Should().Be(setting.DigitalisierungsbeschraenkungBvw);
            result.Bestellkontingent.Should().Be(0);
        }
        public void BestimmeKontingent_Von_Oe1_Should_Throw_NotImplementedException()
        {
            // arrange
            var setting   = new DigitalisierungsbeschraenkungSettings();
            var orderings = new List <Ordering>();
            var sut       = new KontingentBestimmer(setting);

            // act
            var action = new Action(() => { sut.BestimmeKontingent(orderings, AccessRolesEnum.Ö1, new User()); });

            // assert
            action.Should().Throw <ArgumentOutOfRangeException>();
        }
示例#4
0
 public OrderController(OrderManagerClient client,
                        IEntityProvider entityProvider,
                        IKontrollstellenInformer kontrollstellenInformer,
                        IElasticService elasticService,
                        DigitalisierungsbeschraenkungSettings digitalisierungsbeschraenkungSettings,
                        IUserDataAccess userDataAccess)
 {
     this.client                  = client;
     this.entityProvider          = entityProvider;
     this.kontrollstellenInformer = kontrollstellenInformer;
     this.elasticService          = elasticService;
     this.digitalisierungsbeschraenkungSettings = digitalisierungsbeschraenkungSettings;
     this.userDataAccess = userDataAccess;
 }
        public void BestimmeKontingent_AktiveAuftraege_Should_BeCalculatedFromOrderings_When_Ordering_Is_Digitalisierung()
        {
            // arrange
            var setting           = new DigitalisierungsbeschraenkungSettings();
            var itemsFromOrdering = new List <OrderItem>
            {
                new OrderItem
                {
                    Status = OrderStatesInternal.FreigabePruefen // Zählt
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.FuerDigitalisierungBereit // Zählt
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.Abgebrochen // Zählt nicht
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.DigitalisierungAbgebrochen // Zählt nicht
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.ZumReponierenBereit // Zählt nicht
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.Abgeschlossen // Zählt nicht
                }
            };

            var orderings = new List <Ordering>
            {
                new Ordering
                {
                    Type  = OrderType.Digitalisierungsauftrag,
                    Items = itemsFromOrdering.ToArray()
                }
            };

            var sut = new KontingentBestimmer(setting);

            // act
            var result = sut.BestimmeKontingent(orderings, AccessRolesEnum.Ö2, new User());

            // assert
            result.AktiveDigitalisierungsauftraege.Should().Be(2);
        }
        public void BestimmeKontingent_Digitalisierungsbeschraekung_Should_Come_From_Settings()
        {
            // arrange
            var setting = new DigitalisierungsbeschraenkungSettings {
                DigitalisierungsbeschraenkungOe2 = 2
            };

            var orderings = new List <Ordering>();
            var sut       = new KontingentBestimmer(setting);

            // act
            var result = sut.BestimmeKontingent(orderings, AccessRolesEnum.Ö2, new User());

            // assert
            result.Digitalisierungesbeschraenkung.Should().Be(setting.DigitalisierungsbeschraenkungOe2);
        }
示例#7
0
 public OrderController(IPublicOrder client,
                        IEntityProvider entityProvider,
                        IKontrollstellenInformer kontrollstellenInformer,
                        IElasticService elasticService,
                        DigitalisierungsbeschraenkungSettings digitalisierungsbeschraenkungSettings,
                        IUserDataAccess userDataAccess,
                        VerwaltungsausleiheSettings verwaltungsausleiheSettings,
                        ManagementClientSettings managementClientSettings)
 {
     this.client                  = client;
     this.entityProvider          = entityProvider;
     this.kontrollstellenInformer = kontrollstellenInformer;
     this.elasticService          = elasticService;
     this.digitalisierungsbeschraenkungSettings = digitalisierungsbeschraenkungSettings;
     this.userDataAccess = userDataAccess;
     this.verwaltungsausleiheSettings = verwaltungsausleiheSettings;
     this.managementClientSettings    = managementClientSettings;
 }
示例#8
0
        public void BestimmeKontingent_Von_Oe1_Should_Throw_NotImplementedException()
        {
            // arrange
            var setting   = new DigitalisierungsbeschraenkungSettings();
            var orderings = new List <Ordering>();
            var sut       = new KontingentBestimmer(setting);

            // act
            var action = new Action(() =>
            {
                sut.BestimmeKontingent(orderings,
                                       new User
                {
                    RolePublicClient = AccessRoles.RoleOe1,
                    Access           = new UserAccess("1", AccessRoles.RoleOe1, "oe1", null, false)
                });
            });

            // assert
            action.Should().Throw <ArgumentOutOfRangeException>();
        }
        public void BestimmeKontingent_Bestellkontingent_Should_Be_Zero_When_User_DisablesThreshold_Ends_Yesterday()
        {
            // arrange
            var setting = new DigitalisierungsbeschraenkungSettings {
                DigitalisierungsbeschraenkungBar = 1
            };

            var itemsFromOrdering = new List <OrderItem>
            {
                new OrderItem
                {
                    Status = OrderStatesInternal.FreigabePruefen // Zählt
                },
                new OrderItem
                {
                    Status = OrderStatesInternal.FuerDigitalisierungBereit // Zählt
                }
            };
            var orderings = new List <Ordering>
            {
                new Ordering
                {
                    Type  = OrderType.Digitalisierungsauftrag, // zählt
                    Items = itemsFromOrdering.ToArray()
                }
            };

            var user = new User
            {
                DigitalisierungsbeschraenkungAufgehobenBis = DateTime.Now.AddDays(-1)
            };

            var sut = new KontingentBestimmer(setting);

            // act
            var result = sut.BestimmeKontingent(orderings, AccessRolesEnum.BAR, user);

            // assert
            result.Bestellkontingent.Should().Be(0);
        }
 public KontingentBestimmer(DigitalisierungsbeschraenkungSettings setting)
 {
     this.setting = setting;
 }