Beispiel #1
0
        public void OutputWriterWriteCsv()
        {
            var stringBuilder = new StringBuilder(4);

            using var stringWriter = new StringWriter(stringBuilder);
            var csvSerializer = new CsvSerializer();

            var output = new OutputRecordWriter(stringWriter, csvSerializer);

            // generate a fake and write it to the stream
            var a = this.fakes.Recording.Generate();

            output.Write(a);

            // check the header was written
            var actual = stringBuilder.ToString();

            Assert.StartsWith($"{nameof(Recording.SourcePath)},", actual);
            Assert.Contains(a.ExpectedDurationSeconds?.TotalSeconds.ToString(), actual);

            // generate and write another fake
            var b = this.fakes.Recording.Generate();

            output.Write(b);

            // finish writing
            output.Dispose();

            actual = stringBuilder.ToString();
            Assert.StartsWith($"{nameof(Recording.SourcePath)},", actual);
            Assert.Single(Regex.Matches(actual, $"{nameof(Recording.SourcePath)},"));
            Assert.Contains(a.ExpectedDurationSeconds?.TotalSeconds.ToString(), actual);

            var records = csvSerializer.Deserialize <Recording>(new StringReader(actual)).ToArray();

            Assert.Equal(records[0].SourcePath, a.SourcePath);
            Assert.Equal(records[1].SourcePath, b.SourcePath);
        }
Beispiel #2
0
        public void OutputWriterWriteJson()
        {
            var stringBuilder = new StringBuilder(4);

            using var stringWriter = new StringWriter(stringBuilder);
            var jsonSerializer = new JsonSerializer();

            var output = new OutputRecordWriter(stringWriter, jsonSerializer);

            // generate a fake and write it to the stream
            var a = this.fakes.Recording.Generate();

            output.Write(a);

            // check the header was written
            var actual = stringBuilder.ToString();

            Assert.StartsWith($"[{Environment.NewLine}", actual);
            Assert.EndsWith("}", actual);

            // generate and write another fake
            var b = this.fakes.Recording.Generate();

            output.Write(b);

            // finish writing
            output.Dispose();

            actual = stringBuilder.ToString();
            Assert.StartsWith($"[{Environment.NewLine}", actual);
            Assert.EndsWith("]", actual);

            var records = jsonSerializer.Deserialize <Recording>(new StringReader(actual)).ToArray();

            Assert.Equal(records[0].SourcePath, a.SourcePath);
            Assert.Equal(records[1].SourcePath, b.SourcePath);
        }