public void WriteRead(int cnt) { ////var ms = new FileStream("c:\\azos\\archive.lar", FileMode.Create);// new MemoryStream(); var ms = new MemoryStream(); var meta = VolumeMetadataBuilder.Make("Log archive", LogMessageArchiveAppender.CONTENT_TYPE_LOG) .SetVersion(1, 0) .SetDescription("Testing log messages") .SetChannel(Atom.Encode("dvop")); var volume = new DefaultVolume(CryptoMan, meta, ms); using (var appender = new LogMessageArchiveAppender(volume, NOPApplication.Instance.TimeSource, NOPApplication.Instance.AppId, "dima@zhaba")) { for (var i = 0; i < cnt; i++) { var msg = new Message() { Text = "Message#" + i.ToString() }.InitDefaultFields(); appender.Append(msg); } } var reader = new LogMessageArchiveReader(volume); Aver.AreEqual(cnt, reader.All.Count()); Aver.AreEqual(cnt, reader.GetEntriesStartingAt(new Bookmark()).Count()); Aver.AreEqual(cnt, reader.GetBookmarkedEntriesStartingAt(new Bookmark()).Count()); Aver.AreEqual(cnt, reader.GetEntriesAsObjectsStartingAt(new Bookmark()).Count()); Aver.AreEqual(cnt, reader.GetBookmarkedEntriesAsObjectsStartingAt(new Bookmark()).Count()); reader.All.ForEach((m, i) => Aver.AreEqual("Message#" + i.ToString(), m.Text)); reader.GetBookmarkedEntriesStartingAt(new Bookmark()).ForEach((t, i) => { var pointed = reader.GetEntriesStartingAt(t.bm).First(); Aver.AreEqual("Message#" + i.ToString(), pointed.Text); Aver.AreEqual(t.entry.Text, pointed.Text); }); volume.Dispose(); }
public void Write_Read_Compare(string compress, string encrypt, int count, int pgsize) { var expected = FakeLogMessage.BuildRandomArr(count); var ms = new MemoryStream(); var meta = VolumeMetadataBuilder.Make("Log archive", LogMessageArchiveAppender.CONTENT_TYPE_LOG) .SetVersion(1, 0) .SetDescription("Testing log messages") .SetChannel(Atom.Encode("dvop")) .SetCompressionScheme(compress) .SetEncryptionScheme(encrypt); var volume = new DefaultVolume(CryptoMan, meta, ms) { PageSizeBytes = pgsize }; using (var appender = new LogMessageArchiveAppender(volume, NOPApplication.Instance.TimeSource, NOPApplication.Instance.AppId, "dima@zhaba")) { for (var i = 0; i < count; i++) { appender.Append(expected[i]); } } "The volume is {0:n0} bytes".SeeArgs(ms.Length); var reader = new LogMessageArchiveReader(volume); var got = reader.GetEntriesStartingAt(new Bookmark()).ToArray(); Aver.AreEqual(expected.Length, got.Length); for (int i = 0; i < count; i++) { Aver.AreEqual(expected[i].App, got[i].App); Aver.AreEqual(expected[i].ArchiveDimensions, got[i].ArchiveDimensions); Aver.AreEqual(expected[i].Channel, got[i].Channel); Aver.AreEqual(expected[i].Exception?.Message, got[i].Exception?.Message); Aver.AreEqual(expected[i].From, got[i].From); Aver.AreEqual(expected[i].Gdid, got[i].Gdid); Aver.AreEqual(expected[i].Guid.ToString(), got[i].Guid.ToString()); Aver.AreEqual(expected[i].Host, got[i].Host); Aver.AreEqual(expected[i].Parameters, got[i].Parameters); Aver.AreEqual(expected[i].RelatedTo.ToString(), got[i].RelatedTo.ToString()); Aver.AreEqual(expected[i].Text, got[i].Text); Aver.AreEqual(expected[i].Topic, got[i].Topic); Aver.AreEqual((int)expected[i].Type, (int)got[i].Type); Aver.AreEqual(expected[i].UTCTimeStamp, got[i].UTCTimeStamp); } volume.Dispose(); }