コード例 #1
0
ファイル: TelemetryTest.cs プロジェクト: sabrogden/logjoint
        public async Task CanReportIssue()
        {
            traceAccess.When(x => x.ClearMemBufferAndGetCurrentContents(Arg.Any <TextWriter>())).Do(call =>
            {
                var w = call.Arg <TextWriter>();
                w.Write("line 1\n");
                w.Write("line 2\n");
            });
            using (var uploadedStreamContents = new MemoryStream())
            {
                uploader.UploadIssueReport(Arg.Do <Stream>(s =>
                {
                    IOUtils.CopyStreamWithProgress(s, uploadedStreamContents, _ => { }, CancellationToken.None);
                }), Arg.Any <CancellationToken>()).ReturnsForAnyArgs(Task.FromResult("https://blobs/123"));

                await collector.ReportIssue("something went wrong for me");

                uploadedStreamContents.Position = 0;
                using (var zip = new ZipFile(uploadedStreamContents))
                {
                    Assert.AreEqual(30, zip.GetEntry("description.txt").Size);
                    Assert.AreEqual(17, zip.GetEntry("membuffer.log").Size);
                }
            }
        }