Ejemplo n.º 1
0
        public void Q146CanWriteSameContentTwiceIfItsHead()
        {
            var s = new DirtyVersionStorage(dir);

            s.Save("testfile", "same");
            s.Save("testfile", "same");
        }
Ejemplo n.º 2
0
        public void CanListAllFiles()
        {
            var s = new DirtyVersionStorage(dir);

            s.Save("first", "testdata");
            s.Save("second", "testdata");
            s.Save("third", "testdata");
            s.Save("third", "testdata2");
        }
Ejemplo n.º 3
0
        public void CanSimplyWriteAndRead_Without_OverHeat()
        {
            var          s        = new DirtyVersionStorage(dir);
            const string FILENAME = "hello world!";
            const string CONTENT1 = "hello world!";
            const string CONTENT2 = "hello world - 222 !!!";

            //взяли и с любым именем сохранили нечто и спокойно прочитали
            var c1 = s.Save(FILENAME, CONTENT1);

            Assert.AreEqual(CONTENT1, s.ReadString(FILENAME));

            //взяли и сохранили новую версию
            var c2 = s.Save(FILENAME, CONTENT2);

            Assert.AreNotEqual(c1.Hash, c2.Hash);
            Assert.True(c2.HeadState == HeadState.IsHead);
            Assert.AreEqual(CONTENT2, s.ReadString(FILENAME));

            //но доступна и старая
            Assert.AreEqual(CONTENT1, s.ReadString(FILENAME, c1.Hash));

            //взяли и нативным апи пофиксили историю
            using (var o = s.GetMapper().Open(FILENAME))
            {
                o.MoveHead(c1.Hash);
                o.Commit();
            }
            Assert.AreEqual(CONTENT1, s.ReadString(FILENAME));
            Assert.AreEqual(CONTENT2, s.ReadString(FILENAME, c2.Hash));



            var c3 = s.Save(FILENAME, "new", c2.Hash);
            var c4 = s.Save(FILENAME, "new1", c2.Hash);
            var c5 = s.Save(FILENAME, "new2", c2.Hash);

            //взяли и нативным апи пофиксили историю
            using (var o = s.GetMapper().Open(FILENAME)) {
                o.Commit(c5.Hash, CommitHeadBehavior.Override, c1.Hash, c3.Hash);
                o.Commit();
            }
            //и это все еще можно получить и сконвертить в XML
            var xmlinfo = s.ExplainAsXml(FILENAME);

            Console.WriteLine(xmlinfo);
        }