public async Task Request_WhenInputValidationsAreBroken_IsRejected()
        {
            // Arrange
            var energySupplierGlnNumber = "5790000555550";
            var meteringPointGsrnNumber = "571234567891234568";

            await Seed(energySupplierGlnNumber, meteringPointGsrnNumber).ConfigureAwait(false);

            var systemDateTimeProvider = _serviceProvider.GetRequiredService <ISystemDateTimeProvider>();

            var command = new RequestChangeOfSupplier
            {
                MarketEvaluationPoint   = new MarketEvaluationPoint(meteringPointGsrnNumber),
                EnergySupplier          = new MarketParticipant(energySupplierGlnNumber),
                BalanceResponsibleParty = new MarketParticipant("2"),
                Consumer  = new MarketParticipant("0101210000", null, null, "OOPS"), // A correct qualifier would be ARR or VA
                StartDate = systemDateTimeProvider.Now(),
            };

            // Act
            await _mediator.Send(command, CancellationToken.None).ConfigureAwait(false);

            // Assert (it's a rejected message)
            var publishedMessage = await GetLastMessageFromOutboxAsync <RequestChangeOfSupplierRejected>().ConfigureAwait(false);

            Assert.Equal(command.MarketEvaluationPoint.MRid, publishedMessage.MeteringPointId);
        }
Beispiel #2
0
        public async Task All_input_validations_for_initiate_change_of_supplier_should_fail_for_empty_object()
        {
            var ruleCollectionTester     = RuleCollectionTester.Create <InitiateChangeOfSupplierRules, RequestChangeOfSupplier>();
            var initiateChangeOfSupplier = new RequestChangeOfSupplier();

            var result = await ruleCollectionTester.InvokeAsync(initiateChangeOfSupplier).ConfigureAwait(false);

            result.Count.Should().Be(5);
        }
Beispiel #3
0
        public async Task Consumer_should_fail_if_containing_invalid_or_missing_qualifier(MarketParticipant marketParticipant)
        {
            var ruleCollectionTester     = RuleCollectionTester.Create <InitiateChangeOfSupplierRules, RequestChangeOfSupplier>();
            var initiateChangeOfSupplier = new RequestChangeOfSupplier
            {
                MarketEvaluationPoint = new MarketEvaluationPoint {
                    MRid = "571313180400153356"
                },
                StartDate = Instant.FromUtc(2020, 10, 5, 1, 0),
                BalanceResponsibleParty = new MarketParticipant("8100000000207"),
                EnergySupplier          = new MarketParticipant("5790001686758"),
                Consumer = marketParticipant,
            };

            var result = await ruleCollectionTester.InvokeAsync(initiateChangeOfSupplier).ConfigureAwait(false);

            result.Count.Should().Be(1);
            result.First().RuleNumber.Should().Be("D17");
        }
        public async Task Request_WhenMeteringPointDoesNotExist_IsRejected()
        {
            var energySupplierGlnNumber = "5790000555550";
            var meteringPointGsrnNumber = "571234567891234568";

            await Seed(energySupplierGlnNumber, meteringPointGsrnNumber).ConfigureAwait(false);

            var command = new RequestChangeOfSupplier()
            {
                MarketEvaluationPoint = new MarketEvaluationPoint(meteringPointGsrnNumber),
                EnergySupplier        = new MarketParticipant(energySupplierGlnNumber),
            };

            var result = await _mediator.Send(command, CancellationToken.None).ConfigureAwait(false);

            var publishedMessage = await GetLastMessageFromOutboxAsync <RequestChangeOfSupplierRejected>().ConfigureAwait(false);

            Assert.Equal(command.MarketEvaluationPoint.MRid, publishedMessage.MeteringPointId);
        }
Beispiel #5
0
        public async Task Input_validations_should_not_fail_for_valid_object()
        {
            var ruleCollectionTester     = RuleCollectionTester.Create <InitiateChangeOfSupplierRules, RequestChangeOfSupplier>();
            var initiateChangeOfSupplier = new RequestChangeOfSupplier
            {
                MarketEvaluationPoint = new MarketEvaluationPoint {
                    MRid = "571313180400153356"
                },
                StartDate = Instant.FromUtc(2020, 10, 5, 1, 0),
                BalanceResponsibleParty = new MarketParticipant("8100000000207"),
                EnergySupplier          = new MarketParticipant("5790001686758"),
                Consumer = new MarketParticipant("50000000")
                {
                    Qualifier = "VA"
                },
            };

            var result = await ruleCollectionTester.InvokeAsync(initiateChangeOfSupplier).ConfigureAwait(false);

            result.Count.Should().Be(0);
        }
        public async Task Request_WhenNoRulesAreBroken_IsSuccessful()
        {
            var energySupplierGlnNumber = "5790000555550";
            var meteringPointGsrnNumber = "571234567891234568";

            await Seed(energySupplierGlnNumber, meteringPointGsrnNumber).ConfigureAwait(false);

            var systemDateTimeProvider = _serviceProvider.GetRequiredService <ISystemDateTimeProvider>();
            var command = new RequestChangeOfSupplier()
            {
                MarketEvaluationPoint   = new MarketEvaluationPoint(meteringPointGsrnNumber),
                EnergySupplier          = new MarketParticipant(energySupplierGlnNumber),
                BalanceResponsibleParty = new MarketParticipant("2"),
                Consumer  = new MarketParticipant("0101210000", null, null, "ARR"),
                StartDate = systemDateTimeProvider.Now(),
            };

            await _mediator.Send(command, CancellationToken.None).ConfigureAwait(false);

            var publishedMessage = await GetLastMessageFromOutboxAsync <RequestChangeOfSupplierApproved>().ConfigureAwait(false);

            Assert.Equal(command.MarketEvaluationPoint.MRid, publishedMessage.MeteringPointId);
        }