public async Task Can_deserialize_incoming_json()
        {
            var logger     = Substitute.For <ILogger <JsonMessageDeserializer> >();
            var serializer = new JsonMessageDeserializer(logger, new JsonSerializer());
            var targetType = typeof(ChangeOfSupplierMessage);

            var expected = new ChangeOfSupplierMessage();

            expected.BalanceResponsibleParty = new MarketParticipant("12345678", null, null, "VA");
            expected.EnergySupplier          = new MarketParticipant("12345678", null, null, "VA");
            expected.Consumer = new MarketParticipant("1234567890", "Hans Hansen", null, "ARR");
            expected.MarketEvaluationPoint = new MarketEvaluationPoint("123456789123456789");
            expected.StartDate             = Instant.FromUtc(2020, 9, 30, 22, 0, 0) + Duration.FromMilliseconds(1);
            expected.Transaction           = new Transaction("a01dbf8b-ea99-4798-9bd4-ed85ecf79897");

            await using var fs = File.OpenRead("Assets/ChangeSupplier.json");

            var request = await serializer.RehydrateAsync(fs, targetType).ConfigureAwait(false);

            var actual = request as ChangeOfSupplierMessage;

            var compare = new ChangeSupplierEquality();

            Assert.Equal(expected, actual, compare);
        }
示例#2
0
        public async Task Can_deserialize_incoming_json()
        {
            var logger          = Substitute.For <ILogger <JsonMessageDeserializer> >();
            var serializer      = new JsonMessageDeserializer(logger, new JsonSerializer());
            var targetType      = typeof(ChangeOfChargesMessage);
            var expectedMessage = CreateChangeOfFeeMessageEquivalentToJsonAssetFile();

            await using var fs = File.OpenRead("Assets/ChangeOfFee.json");

            var request = await serializer.RehydrateAsync(fs, targetType).ConfigureAwait(false);

            var actualMessage = request as ChangeOfChargesMessage;

            actualMessage.Should().BeEquivalentTo(expectedMessage);
        }