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); }
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); }
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)); }