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);
        }
 public int GetHashCode(ChangeOfSupplierMessage obj)
 {
     return(HashCode.Combine(obj.Transaction, obj.BalanceResponsibleParty, obj.EnergySupplier, obj.Consumer, obj.MarketEvaluationPoint, obj.StartDate));
 }