static void TestWriteRead(Action <AbstractBufferedWriter> writeAction, byte[] checkResult, Action <AbstractBufferedReader> readAction, Action <AbstractBufferedReader> skipAction) { var sw = new BufferedWriterStub(1); writeAction(sw); sw.FlushBuffer(); Assert.AreEqual(checkResult, sw.Output); BufferedReaderStub sr; if (checkResult.Length > 1) { sw = new BufferedWriterStub(checkResult.Length); writeAction(sw); sw.FlushBuffer(); Assert.AreEqual(checkResult, sw.Output); sw = new BufferedWriterStub(checkResult.Length + 1); writeAction(sw); sw.FlushBuffer(); Assert.AreEqual(checkResult, sw.Output); sr = new BufferedReaderStub(checkResult, checkResult.Length); readAction(sr); Assert.True(sr.Eof); } sr = new BufferedReaderStub(checkResult, 1); readAction(sr); Assert.True(sr.Eof); sw = new BufferedWriterStub(checkResult.Length * 2); writeAction(sw); writeAction(sw); sw.FlushBuffer(); Assert.AreEqual(checkResult.Concat(checkResult).ToArray(), sw.Output); sr = new BufferedReaderStub(checkResult.Concat(checkResult).ToArray(), checkResult.Length * 2); readAction(sr); readAction(sr); if (skipAction != null) { sr = new BufferedReaderStub(checkResult.Concat(checkResult).ToArray(), checkResult.Length * 2); skipAction(sr); readAction(sr); Assert.True(sr.Eof); sr = new BufferedReaderStub(checkResult.Concat(checkResult).ToArray(), checkResult.Length * 2); readAction(sr); skipAction(sr); Assert.True(sr.Eof); } }
static void TestWriteRead(Action<AbstractBufferedWriter> writeAction, byte[] checkResult, Action<AbstractBufferedReader> readAction, Action<AbstractBufferedReader> skipAction) { var sw = new BufferedWriterStub(1); writeAction(sw); sw.FlushBuffer(); Assert.Equal(checkResult, sw.Output); BufferedReaderStub sr; if (checkResult.Length > 1) { sw = new BufferedWriterStub(checkResult.Length); writeAction(sw); sw.FlushBuffer(); Assert.Equal(checkResult, sw.Output); sw = new BufferedWriterStub(checkResult.Length + 1); writeAction(sw); sw.FlushBuffer(); Assert.Equal(checkResult, sw.Output); sr = new BufferedReaderStub(checkResult, checkResult.Length); readAction(sr); Assert.True(sr.Eof); } sr = new BufferedReaderStub(checkResult, 1); readAction(sr); Assert.True(sr.Eof); sw = new BufferedWriterStub(checkResult.Length * 2); writeAction(sw); writeAction(sw); sw.FlushBuffer(); Assert.Equal(checkResult.Concat(checkResult).ToArray(), sw.Output); sr = new BufferedReaderStub(checkResult.Concat(checkResult).ToArray(), checkResult.Length * 2); readAction(sr); readAction(sr); if (skipAction != null) { sr = new BufferedReaderStub(checkResult.Concat(checkResult).ToArray(), checkResult.Length * 2); skipAction(sr); readAction(sr); Assert.True(sr.Eof); sr = new BufferedReaderStub(checkResult.Concat(checkResult).ToArray(), checkResult.Length * 2); readAction(sr); skipAction(sr); Assert.True(sr.Eof); } }