public void TestMessageRouting() { var blockConvo1 = new ManualResetEvent(false); var blockConvo2 = new ManualResetEvent(false); var comm = new MockCommunicator(); var router = new MessageRouter(comm); var converser1 = new MockConverser() { ConversationId = ConverserId1 }; converser1.OnConversationOver += (IConverser c) => { blockConvo1.Set(); }; var converser2 = new MockConverser() { ConversationId = ConverserId2 }; converser2.OnConversationOver += (IConverser c) => { blockConvo2.Set(); }; // Conversations are implicitly started here router.AddConversation(converser1, RemoteEndPoint); router.AddConversation(converser2, RemoteEndPoint); Assert.True(blockConvo1.WaitOne(100), "Conversation 1 never finished"); Assert.True(blockConvo2.WaitOne(100), "Conversation 2 never finsihed"); }
private void addSeedButton_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(seedTextBox.Text)) { if (File.Exists(seedTextBox.Text)) { var provider = new RSACryptoServiceProvider(); provider.ImportCspBlob(persistenceManager.ReadContent().KeyInfo); using (var sha2 = new SHA256Managed()) { FileInfo file = new FileInfo(seedTextBox.Text); Content newContent = new Content() { FileName = file.Name, LocalPath = file.DirectoryName, Description = descriptionTextBox.Text, ByteSize = (int)file.Length, ContentHash = sha2.ComputeHash(File.ReadAllBytes(file.FullName)), Host = Properties.Settings.Default.HostAddress, Port = Properties.Settings.Default.HostPort, PublicKeyInfo = provider.ExportCspBlob(false) }; persistenceManager.WriteContent(newContent, PersistenceManager.StorageType.Local); seederDataGridView.DataSource = persistenceManager.ReadContent().LocalContent; RegisterContentRequest request = new RegisterContentRequest(Guid.NewGuid(), Guid.NewGuid(), 1, newContent); RegisterContentSender contentSender = new RegisterContentSender(request.ConversationId, request); router.AddConversation(contentSender, RegistryEndpoint); } } else { MessageBox.Show("That file does not exist", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("You must specify a filename", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }