public static void Develop()
        {
            String fileNameString = "in.txt";
            {
                FileIOPermission f = new FileIOPermission(PermissionState.None);

                f.AllFiles = FileIOPermissionAccess.Write;
                f.Demand();
            }
            {
                if (File.Exists(fileNameString))
                {
                    File.Delete(fileNameString);
                }
            }
            Stream stream = new FileStream(fileNameString, FileMode.CreateNew, FileAccess.ReadWrite);

            if (true)
            {
                IBeepingWriter writer = new BeepingWriter(stream);

                for (int i = 1; i < 10; i++)
                {
                    writer.WriteBeep(new Beep((ushort)(3144 - 3100 / i), 100));
                }
            }
            if (true)
            {
                IBeepingReader reader = new BeepingReader(stream);
                var            beeps  = reader.ReadBeeps();
            }
        }
        public void ReadBeep_ReadEmptyStream_ReadedBeepIsNull()
        {
            Stream            stream       = new MemoryStream();
            IBeeper           beeper       = new StubConsoleBeeper();
            IBeepStreamReader streamReader = new BeepStreamReader();
            IBeepingReader    reader       = new BeepingReader(
                stream,
                beeper,
                streamReader
                );

            var beep = reader.ReadBeep();

            Assert.IsNull(beep);
        }
        public void ReadBeep_ReadNormalBeep_WritedBeepAreEqualReadedBeep()
        {
            String fileName = "test.txt";
            {
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
            }
            Beep beep = new Beep(
                40,
                133
                );
            Stream stream = new FileStream(
                fileName,
                FileMode.CreateNew
                );
            {
                IBeepStreamWriter streamWriter = new BeepStreamWriter();

                streamWriter.WriteBeep(
                    stream,
                    beep
                    );
            }
            IBeeper           beeper       = new StubConsoleBeeper();
            IBeepStreamReader streamReader = new BeepStreamReader();
            IBeepingReader    reader       = new BeepingReader(
                stream,
                beeper,
                streamReader
                );

            Beep readedBeep = reader.ReadBeep();

            Assert.AreEqual <Beep>(
                beep,
                readedBeep
                );
        }
        public void ReadBeeps_ReadSomeBeeps_BeepsAreEqual()
        {
            IEnumerable <Beep> beeps = new List <Beep>()
            {
                new Beep(
                    42,
                    133
                    ),
                new Beep(
                    666,
                    133
                    )
            };
            Stream  stream = new MemoryStream();
            IBeeper beeper = new StubConsoleBeeper();
            {
                IBeepStreamWriter streamWriter = new BeepStreamWriter();
                IBeepingWriter    writer       = new BeepingWriter(
                    stream,
                    beeper,
                    streamWriter
                    );

                writer.WriteBeeps(beeps);
            }
            IBeepStreamReader streamReader = new BeepStreamReader();
            IBeepingReader    reader       = new BeepingReader(
                stream,
                beeper,
                streamReader
                );

            IEnumerable <Beep> readedBeeps = reader.ReadBeeps();


            Assert.IsTrue(
                beeps.SequenceEqual(readedBeeps)
                );
        }