public void TestSerializeDeserializeNoCacheProfile() { var db = new RestrictionsDb(1024); db.Add(1, 2, 3); db.Add(10, 11, 12); db.Add(10, 111, 222); db.Add(12, 2, 3); var stream = new MemoryStream(); var size = db.Serialize(stream); Assert.AreEqual(stream.Position, size); stream.Seek(0, SeekOrigin.Begin); db = RestrictionsDb.Deserialize(stream, RestrictionsDbProfile.NoCache); var enumerator = db.GetEnumerator(); Assert.IsTrue(enumerator.MoveTo(12)); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(3, enumerator.Count); Assert.AreEqual(10, enumerator[0]); Assert.AreEqual(11, enumerator[1]); Assert.AreEqual(12, enumerator[2]); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(3, enumerator.Count); Assert.AreEqual(12, enumerator[0]); Assert.AreEqual(2, enumerator[1]); Assert.AreEqual(3, enumerator[2]); enumerator = db.GetEnumerator(); Assert.IsTrue(enumerator.MoveTo(3)); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(3, enumerator.Count); Assert.AreEqual(1, enumerator[0]); Assert.AreEqual(2, enumerator[1]); Assert.AreEqual(3, enumerator[2]); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(3, enumerator.Count); Assert.AreEqual(12, enumerator[0]); Assert.AreEqual(2, enumerator[1]); Assert.AreEqual(3, enumerator[2]); db = new RestrictionsDb(1024); db.Add(1, 2, 3); db.Add(1, 2, 3, 4); stream.Dispose(); stream = new MemoryStream(); size = db.Serialize(stream); Assert.AreEqual(stream.Position, size); stream.Seek(0, SeekOrigin.Begin); db = RestrictionsDb.Deserialize(stream, RestrictionsDbProfile.NoCache); enumerator = db.GetEnumerator(); Assert.IsTrue(enumerator.MoveTo(1)); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(3, enumerator.Count); Assert.AreEqual(1, enumerator[0]); Assert.AreEqual(2, enumerator[1]); Assert.AreEqual(3, enumerator[2]); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(4, enumerator.Count); Assert.AreEqual(1, enumerator[0]); Assert.AreEqual(2, enumerator[1]); Assert.AreEqual(3, enumerator[2]); Assert.AreEqual(4, enumerator[3]); Assert.IsFalse(enumerator.MoveNext()); }