Пример #1
0
        public void WriteRecord_TwoRecords_RecordsAreWritten()
        {
            var records = new string[]
            {
                "Record 1",
                "Record 2"
            };

            var writeRecord = new Action <System.IO.StreamWriter, object>((sr, r) => sr.WriteLine(r));

            using (var stream = new MemoryStream())
                using (var streamWriter = new MockStreamWriter(stream, writeRecord))
                {
                    streamWriter.Open();

                    foreach (var record in records)
                    {
                        streamWriter.WriteRecord(record);
                    }

                    streamWriter.Commit();

                    StreamWriterTests.AssertStreamContentMatchesRecords(stream, records);
                }
        }
Пример #2
0
        public void WriteRecord_OneRecordWithRecordFormatter_RecordIsFormattedAndWritten()
        {
            var records = new string[]
            {
                "Record 1"
            };

            var formattedRecords = new string[]
            {
                "Formatted Record 1"
            };

            var writeRecord     = new Action <System.IO.StreamWriter, object>((sr, r) => sr.WriteLine(r));
            var recordFormatter = MockRepository.GenerateMock <IRecordFormatter>();

            recordFormatter.Expect(x => x.Format(Arg <object> .Is.Equal(records[0]))).Return(formattedRecords[0]).Repeat.Once();

            using (var stream = new MemoryStream())
                using (var streamWriter = new MockStreamWriter(stream, writeRecord, recordFormatter))
                {
                    streamWriter.Open();

                    foreach (var record in records)
                    {
                        streamWriter.WriteRecord(record);
                    }

                    streamWriter.Commit();

                    StreamWriterTests.AssertStreamContentMatchesRecords(stream, formattedRecords);
                }

            recordFormatter.VerifyAllExpectations();
        }
Пример #3
0
            public FakeStandardProcess() : base(false)
            {
                stdOut = new MockStreamReader(new MemoryStream());
                stdIn  = new MockStreamWriter(new MemoryStream());

                stdOut.InputReceived += StdOut_InputReceived;
                stdIn.OutputReceived += StdIn_OutputReceived;
            }
Пример #4
0
        public void ProgramTests_NoOutputIfNoMatches()
        {
            FileParser       fileParser = CreateMockFileParser(header.Concat(mismatches));
            MockStreamWriter writer     = null;

            Program.OutputMatchingRecords(fileParser, () => writer = new MockStreamWriter());
            Assert.Null(writer);
        }
Пример #5
0
        public void ProgramTests_ValidMatchOutput()
        {
            FileParser       fileParser = CreateMockFileParser(header.Concat(matches).Concat(mismatches));
            MockStreamWriter writer     = null;

            Program.OutputMatchingRecords(fileParser, () => writer = new MockStreamWriter());
            Assert.Collection(writer.Values,
                              matches.Select <string, Action <string> >(match => record => Assert.Equal(match, record)).ToArray());
        }
Пример #6
0
        public void Dispose_Dispose_CloseIsCalled()
        {
            var closeWasCalled = false;
            var close          = new Action(() => closeWasCalled = true);
            var streamWriter   = new MockStreamWriter(close);

            streamWriter.Dispose();

            Assert.IsTrue(closeWasCalled);
        }
Пример #7
0
        public void WriteRecord_RecordFormatterThrowsException_ExceptionIsPropogated()
        {
            var records = new string[]
            {
                "Record 1"
            };

            var writeRecord     = new Action <System.IO.StreamWriter, object>((sr, r) => sr.WriteLine(r));
            var recordFormatter = MockRepository.GenerateMock <IRecordFormatter>();

            recordFormatter.Stub(x => x.Format(Arg <object> .Is.Anything)).Throw(new InternalTestFailureException());

            using (var stream = new MemoryStream())
                using (var streamWriter = new MockStreamWriter(stream, writeRecord, recordFormatter))
                {
                    streamWriter.Open();
                    streamWriter.WriteRecord(records[0]);
                }
        }