예제 #1
0
        public void Exist_FileExist_ReturnsTrue()
        {
            Rofs fs = new Rofs(disk);

            Assert.IsTrue(fs.Exist("Abc"));
            Assert.IsTrue(fs.Exist("Def"));
        }
예제 #2
0
        public void CreateDisk_WithTwoFiles_DiskIsCreated()
        {
            using (MemoryStream stream = new MemoryStream())
            {
                MemoryStream abc = new MemoryStream();
                abc.WriteByte(0x01);
                abc.WriteByte(0x02);
                abc.WriteByte(0x03);

                MemoryStream def = new MemoryStream();
                def.WriteByte(0x04);
                def.WriteByte(0x05);
                def.WriteByte(0x06);

                abc.Seek(0, SeekOrigin.Begin);
                def.Seek(0, SeekOrigin.Begin);

                Dictionary <string, Stream> files = new Dictionary <string, Stream>();
                files.Add("Abc", abc);
                files.Add("Def", def);

                Rofs.CreateDisk(stream, files);
                stream.Seek(0, SeekOrigin.Begin);
                disk.Seek(0, SeekOrigin.Begin);

                Assert.AreEqual(disk.Length, stream.Length);
                for (int i = 0; i < disk.Length; i++)
                {
                    Assert.AreEqual(disk.ReadByte(), stream.ReadByte(), "Bytes at " + i + " are different.");
                }
            }
        }
예제 #3
0
        public void Open_FileExist_ReturnsFileStream()
        {
            Rofs   fs  = new Rofs(disk);
            Stream abc = fs.Open("Abc");

            Assert.AreEqual(3, abc.Length);
            Assert.AreEqual(1, abc.ReadByte());
            Assert.AreEqual(2, abc.ReadByte());
            Assert.AreEqual(3, abc.ReadByte());

            Stream def = fs.Open("Def");

            Assert.AreEqual(3, def.Length);
            Assert.AreEqual(4, def.ReadByte());
            Assert.AreEqual(5, def.ReadByte());
            Assert.AreEqual(6, def.ReadByte());
        }
예제 #4
0
파일: MainForm.cs 프로젝트: furesoft/FureOS
        private void OpenBtn_Click(object sender, EventArgs e)
        {
            if (openRofsOfd.ShowDialog() == DialogResult.OK)
            {
                var fss = File.Open(openRofsOfd.FileName, FileMode.OpenOrCreate);
                var fs  = new Rofs(fss);

                foreach (var file in fs.GetFiles())
                {
                    Files.Add(file.Name, fs.Open(file.Name));

                    filenamesLb.Items.Add(file.Name);
                }

                fss.Dispose();
            }
        }
예제 #5
0
        public void Open_FileDoesNotExist_ThrowsException()
        {
            Rofs fs = new Rofs(disk);

            Assert.ThrowsException <FileNotFoundException>(() => fs.Open("Ghi"));
        }
예제 #6
0
        public void Exist_FileDoesNotExist_ReturnsFalse()
        {
            Rofs fs = new Rofs(disk);

            Assert.IsFalse(fs.Exist("ghi"));
        }
예제 #7
0
 public static void Build(Stream destinationStrm, Dictionary <string, Stream> files)
 {
     Rofs.CreateDisk(destinationStrm, files);
 }