Пример #1
0
        public async Task ConvertAsync_ValidateTheOutputJson_FileIsAsExpected()
        {
            // Arrange
            string correlationId = "5c7e8d5e-9c1f-41df-b231-b8183db8b934";

            await using var ms                     = new MemoryStream();
            await using var xmlFileStream          = File.OpenRead("Assets/RSM-012_ValidHourly.xml");
            await using var expectedJsonFileStream = File.OpenRead("Assets/SinglePurposeJsonUsedToValidateSoapAdapterNotAllowedInOtherTests.json");

            var sut = new TimeSeriesConverter();

            // Act
            await sut.ConvertAsync(xmlFileStream, ms, correlationId).ConfigureAwait(false);

            // Assert
            var result = await GetAsStringAsync(ms).ConfigureAwait(false);

            var expectedJson = await GetAsStringAsync(expectedJsonFileStream).ConfigureAwait(false);

            // Remove RequestDate value check as it should be set in Entry Point instead of Soap Adapter, kept to ensure pipeline is working
            var trimmedResult       = result.Substring(0, result.IndexOf("RequestDate", StringComparison.InvariantCulture));
            var trimmedExpectedJson = expectedJson.Substring(0, expectedJson.IndexOf("RequestDate", StringComparison.InvariantCulture));

            trimmedResult.Should().BeEquivalentTo(trimmedExpectedJson);
        }
Пример #2
0
        public async Task Validate_valid_rsm012_converted_output()
        {
            // Arrange
            string correlationId = Guid.NewGuid().ToString();

            await using var ms = new MemoryStream();
            await using var fs = File.OpenRead("Assets/RSM-012_ValidHourly.xml");

            var sut = new TimeSeriesConverter();

            // Act
            await sut.ConvertAsync(fs, ms, correlationId).ConfigureAwait(false);

            // Assert
            var json = await GetAsStringAsync(ms).ConfigureAwait(false);

            Assert.True(json.Contains($"\"CorrelationId\":\"{correlationId}\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"mRID\":\"TransactionID-0003\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"MessageReference\":\"MessageID-0003\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"MarketDocument\":{", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"mRID\":\"Identification-0003\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"Type\":\"E66\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"CreatedDateTime\":\"2020-06-29T12:38:55Z\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"SenderMarketParticipant\":{\"mRID\":\"8100000000030\",\"qualifier\":\"VA\",\"name\":null,\"Type\":\"MDR\"}", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"RecipientMarketParticipant\":{\"mRID\":\"5790001330552\",\"qualifier\":\"VA\",\"name\":null,\"Type\":null}", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"ProcessType\":\"D42\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"MarketServiceCategory_Kind\":\"23\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"MktActivityRecord_Status\":\"9\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"Product\":\"8716867000030\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"QuantityMeasurementUnit_Name\":\"KWH\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"SettlementMethod\":\"D01\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"MarketEvaluationPoint_mRID\":\"578032999778756222\"", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"Period\":{\"Resolution\":\"PT1H\",\"TimeInterval\":{\"Start\":\"2020-06-27T22:00:00Z\",\"End\":\"2020-06-28T22:00:00Z\"}", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("\"Points\":[{\"Position\":1,\"Quantity\":1.337,\"Quality\":\"E01\",\"Time\":\"2020-06-27T22:00:00Z", StringComparison.OrdinalIgnoreCase));
            Regex.Matches(json, "\"mRID\":").Count.Should().Be(5);
            Regex.Matches(json, "\"Position\":").Count.Should().Be(24);
            Regex.Matches(json, "\"Quantity\":").Count.Should().Be(24);
            Regex.Matches(json, "\"Quality\":").Count.Should().Be(24);
            Regex.Matches(json, "\"Time\":").Count.Should().Be(24);
        }
Пример #3
0
        public async Task Validate_valid_bundled_rsm012_converted_output()
        {
            // Arrange
            string correlationId = Guid.NewGuid().ToString();

            await using var ms = new MemoryStream();
            await using var fs = File.OpenRead("Assets/RSM-012_ValidBundledTimeSeries_15min_and_1hour.xml");

            var sut = new TimeSeriesConverter();

            // Act
            await sut.ConvertAsync(fs, ms, correlationId).ConfigureAwait(false);

            // Assert
            var json = await GetAsStringAsync(ms).ConfigureAwait(false);

            // System.IO.File.WriteAllText(@"c:\temp\converted" + Guid.NewGuid(), json);
            Assert.True(json.Contains("578030100000089755", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("578030100000090898", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("PT15M", StringComparison.OrdinalIgnoreCase));
            Assert.True(json.Contains("PT1H", StringComparison.OrdinalIgnoreCase));
        }