public void TestSerialization() { Directory directory = NewDirectory(); IndexWriterConfig config = new IndexWriterConfig(TEST_VERSION_CURRENT, null); config.IndexDeletionPolicy = new SnapshotDeletionPolicy(config.IndexDeletionPolicy); IndexWriter writer = new IndexWriter(directory, config); writer.AddDocument(new Document()); writer.Commit(); IRevision revision = new IndexRevision(writer); SessionToken session1 = new SessionToken("17", revision); MemoryStream baos = new MemoryStream(); session1.Serialize(new DataOutputStream(baos)); byte[] b = baos.ToArray(); SessionToken session2 = new SessionToken(new DataInputStream(new MemoryStream(b))); assertEquals(session1.Id, session2.Id); assertEquals(session1.Version, session2.Version); assertEquals(1, session2.SourceFiles.Count); assertEquals(session1.SourceFiles.Count, session2.SourceFiles.Count); assertEquals(session1.SourceFiles.Keys, session2.SourceFiles.Keys); IList <RevisionFile> files1 = session1.SourceFiles.Values.First(); IList <RevisionFile> files2 = session2.SourceFiles.Values.First(); assertEquals(files1, files2); IOUtils.Dispose(writer, directory); }
public void TestSerialization() { Directory directory = NewDirectory(); IndexWriterConfig config = new IndexWriterConfig(TEST_VERSION_CURRENT, null); config.IndexDeletionPolicy = new SnapshotDeletionPolicy(config.IndexDeletionPolicy); IndexWriter writer = new IndexWriter(directory, config); writer.AddDocument(new Document()); writer.Commit(); IRevision revision = new IndexRevision(writer); SessionToken session1 = new SessionToken("17", revision); MemoryStream baos = new MemoryStream(); session1.Serialize(new DataOutputStream(baos)); byte[] b = baos.ToArray(); SessionToken session2 = new SessionToken(new DataInputStream(new MemoryStream(b))); assertEquals(session1.Id, session2.Id); assertEquals(session1.Version, session2.Version); assertEquals(1, session2.SourceFiles.Count); assertEquals(session1.SourceFiles.Count, session2.SourceFiles.Count); // LUCENENET: Collections don't compare automatically in .NET and J2N has no structural equality // checking on Keys, so using CollectionAssert here. This is set // equality (where order doesn't matter) because in Java the keys and values collections are sets. CollectionAssert.AreEquivalent(session1.SourceFiles.Keys, session2.SourceFiles.Keys); IList <RevisionFile> files1 = session1.SourceFiles.Values.First(); IList <RevisionFile> files2 = session2.SourceFiles.Values.First(); assertEquals(files1, files2, aggressive: false); IOUtils.Dispose(writer, directory); }