public async Task RunFetchConcentratorFirmware_Succeeds() { var httpRequest = new Mock <HttpRequest>(); var queryCollection = new QueryCollection(new Dictionary <string, StringValues>() { { "StationEui", new StringValues(this.TestStationEui.ToString()) } }); httpRequest.SetupGet(x => x.Query).Returns(queryCollection); var twin = new Twin(); twin.Properties.Desired = new TwinCollection(JsonUtil.Strictify(@"{'cups': { 'package': '1.0.1', 'fwUrl': 'https://storage.blob.core.windows.net/container/blob', 'fwKeyChecksum': 123456, 'fwSignature': '123' }}")); this.registryManager.Setup(m => m.GetTwinAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(twin)); var blobBytes = Encoding.UTF8.GetBytes(BlobContent); using var blobContentStream = new MemoryStream(blobBytes); using var streamingResult = BlobsModelFactory.BlobDownloadStreamingResult(blobContentStream); this.blobClient.Setup(m => m.DownloadStreamingAsync(default, null, false, It.IsAny <CancellationToken>()))
public async Task GetCursor() { // Arrange string manifestPath = "idx/segments/2020/03/25/0200/meta.json"; Mock <BlobContainerClient> containerClient = new Mock <BlobContainerClient>(MockBehavior.Strict); Mock <BlobClient> blobClient = new Mock <BlobClient>(MockBehavior.Strict); Mock <ShardFactory> shardFactory = new Mock <ShardFactory>(MockBehavior.Strict); List <Mock <Shard> > shards = new List <Mock <Shard> >(); int shardCount = 3; for (int i = 0; i < shardCount; i++) { shards.Add(new Mock <Shard>(MockBehavior.Strict)); } DateTimeOffset dateTime = new DateTimeOffset(2020, 3, 25, 2, 0, 0, TimeSpan.Zero); string segmentPath = "idx/segments/2020/03/25/0200/meta.json"; string currentShardPath = "log/00/2020/03/25/0200/"; List <ShardCursor> shardCursors = new List <ShardCursor> { new ShardCursor("log/00/2020/03/25/0200/chunk1", 2, 3), new ShardCursor("log/01/2020/03/25/0200/chunk4", 5, 6), new ShardCursor("log/02/2020/03/25/0200/chunk7", 8, 9) }; SegmentCursor expectedCursor = new SegmentCursor( segmentPath, shardCursors, currentShardPath); containerClient.Setup(r => r.GetBlobClient(It.IsAny <string>())).Returns(blobClient.Object); using FileStream stream = File.OpenRead( $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}{Path.DirectorySeparatorChar}Resources{Path.DirectorySeparatorChar}{"SegmentManifest.json"}"); BlobDownloadStreamingResult blobDownloadStreamingResult = BlobsModelFactory.BlobDownloadStreamingResult(content: stream); Response <BlobDownloadStreamingResult> downloadResponse = Response.FromValue(blobDownloadStreamingResult, new MockResponse(200)); if (IsAsync) { blobClient.Setup(r => r.DownloadStreamingAsync(default, default, default, default)).ReturnsAsync(downloadResponse);