Skip to content

Commit 03901d3

Browse files
committed
add integration test for GetExtractedRanges
1 parent fc5b066 commit 03901d3

File tree

1 file changed

+93
-27
lines changed

1 file changed

+93
-27
lines changed

ExtractorUtils.Test/integration/TimeSeriesIntegrationTest.cs

Lines changed: 93 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
using Cognite.Extensions;
2-
using Cognite.Extractor.Common;
3-
using Cognite.Extractor.Utils;
4-
using CogniteSdk;
5-
using Com.Cognite.V1.Timeseries.Proto;
6-
using Microsoft.Extensions.Logging;
7-
using System;
1+
using System;
82
using System.Collections.Generic;
93
using System.Linq;
104
using System.Reflection;
11-
using System.Text;
125
using System.Threading.Tasks;
6+
using Cognite.Extensions;
7+
using Cognite.Extractor.Utils;
8+
using CogniteSdk;
9+
using Com.Cognite.V1.Timeseries.Proto;
10+
using Microsoft.Extensions.Logging;
1311
using Xunit;
1412
using Xunit.Abstractions;
1513

@@ -577,27 +575,14 @@ await tester.Destination.CogniteClient.TimeSeries.DeleteAsync(new TimeSeriesDele
577575
}
578576
}
579577

580-
private async Task<(string extId, long id)[]> CreateTestTimeSeries(CDFTester tester)
578+
private async Task<(string extId, long id)[]> CreateTestTimeSeries(CDFTester tester, int count = 3)
581579
{
582-
var timeseries = new[]
580+
var timeseries = Enumerable.Range(1, 3).Select(i => new TimeSeriesCreate
583581
{
584-
new TimeSeriesCreate
585-
{
586-
Name = "utils-test-ts-1",
587-
ExternalId = $"{tester.Prefix} utils-test-ts-1"
588-
},
589-
new TimeSeriesCreate
590-
{
591-
Name = "utils-test-ts-2",
592-
ExternalId = $"{tester.Prefix} utils-test-ts-2",
593-
IsString = true
594-
},
595-
new TimeSeriesCreate
596-
{
597-
Name = "utils-test-ts-3",
598-
ExternalId = $"{tester.Prefix} utils-test-ts-3"
599-
}
600-
};
582+
Name = $"utils-test-ts-{i}",
583+
ExternalId = $"{tester.Prefix} utils-test-ts-{i}",
584+
IsString = i % 2 == 0
585+
}).ToArray();
601586

602587
var result = await tester.Destination.EnsureTimeSeriesExistsAsync(timeseries, RetryMode.None, SanitationMode.None, tester.Source.Token);
603588
return result.Results.Select(ts => (ts.ExternalId, ts.Id)).ToArray();
@@ -985,6 +970,87 @@ await tester.Destination.CogniteClient.TimeSeries.DeleteAsync(new TimeSeriesDele
985970
}
986971
}
987972

973+
[Theory]
974+
[InlineData(CogniteHost.GreenField)]
975+
[InlineData(CogniteHost.BlueField)]
976+
public async Task TestGetExtractedRanges(CogniteHost host)
977+
{
978+
using var tester = new CDFTester(host, _output);
979+
980+
var tss = await CreateTestTimeSeries(tester, 5);
981+
var identities = tss.Select(x => Identity.Create(x.extId)).ToArray();
982+
var now = DateTime.UtcNow;
988983

984+
var dps = new Dictionary<Identity, IEnumerable<Datapoint>>()
985+
{
986+
{ identities[0], new[]
987+
{
988+
new Datapoint(now.AddSeconds(-20), Double.NaN, StatusCode.Bad),
989+
new Datapoint(now.AddSeconds(-10), 1.0),
990+
new Datapoint(now, Double.NaN, StatusCode.Bad),
991+
}
992+
},
993+
{ identities[1], new[]
994+
{
995+
new Datapoint(now.AddSeconds(-20), null, StatusCode.Bad),
996+
new Datapoint(now.AddSeconds(-10), "value"),
997+
new Datapoint(now, null, StatusCode.Bad),
998+
}
999+
},
1000+
{ identities[2], new[]
1001+
{
1002+
new Datapoint(now.AddSeconds(-20), Double.NegativeInfinity, StatusCode.Bad),
1003+
new Datapoint(now.AddSeconds(-10), 1.0),
1004+
new Datapoint(now, Double.NegativeInfinity, StatusCode.Bad),
1005+
}
1006+
},
1007+
{ identities[3], new[]
1008+
{
1009+
new Datapoint(now.AddSeconds(-20), null, StatusCode.Bad),
1010+
new Datapoint(now.AddSeconds(-10), "value"),
1011+
new Datapoint(now, null, StatusCode.Bad),
1012+
}
1013+
},
1014+
{ identities[4], new[]
1015+
{
1016+
new Datapoint(now.AddSeconds(-20), Double.PositiveInfinity, StatusCode.Bad),
1017+
new Datapoint(now.AddSeconds(-10), 1.0),
1018+
new Datapoint(now, Double.PositiveInfinity, StatusCode.Bad),
1019+
}
1020+
},
1021+
};
1022+
1023+
try
1024+
{
1025+
var result = await tester.Destination.GetExtractedRanges(identities, tester.Source.Token, ignoreBadDataPoints: false);
1026+
1027+
Assert.Equal(5, result.Count);
1028+
var hashedIdentities = identities.ToHashSet();
1029+
foreach (var item in result)
1030+
{
1031+
Assert.Contains(item.Key, hashedIdentities);
1032+
Assert.Equal(now, item.Value.Last);
1033+
Assert.Equal(now.AddSeconds(-20), item.Value.First);
1034+
}
1035+
1036+
result = await tester.Destination.GetExtractedRanges(identities, tester.Source.Token, ignoreBadDataPoints: true);
1037+
1038+
Assert.Equal(5, result.Count);
1039+
foreach (var item in result)
1040+
{
1041+
Assert.Contains(item.Key, hashedIdentities);
1042+
Assert.Equal(now.AddSeconds(-10), item.Value.Last);
1043+
Assert.Equal(now.AddSeconds(-10), item.Value.First);
1044+
}
1045+
}
1046+
finally
1047+
{
1048+
await tester.Destination.CogniteClient.TimeSeries.DeleteAsync(new TimeSeriesDelete
1049+
{
1050+
IgnoreUnknownIds = true,
1051+
Items = identities
1052+
});
1053+
}
1054+
}
9891055
}
9901056
}

0 commit comments

Comments
 (0)