public void TestSetSeedingIntervalWhenSeeding() { MockAnnouncerFactory mockAnnoucerFactory = new MockAnnouncerFactory(); Mock <IAgentNetwork> networkMock = new Mock <IAgentNetwork>(); MetaInfoFile file = new MetaInfoFile(Constants.SingleFileTorrent); file.Parse(); Manager manager = new Manager(); Agent agent = new Agent(new Manager(), new Assembler(), networkMock.Object); agent.Startup(); TorrentContext tc = new TorrentContext(file, new Selector(), new DiskIO(manager), Constants.DestinationDirectory, true); Tracker tracker = new Tracker(tc, mockAnnoucerFactory); agent.AddTorrent(tc); agent.AttachPeerSwarmQueue(tracker); tracker.StartAnnouncing(); agent.StartTorrent(tc); try { tracker.SetSeedingInterval(30); } catch (Exception ex) { Assert.True(false, "Should not throw execption here but it did. " + ex.Message); } Assert.True(true); }
public void TestStartAnnouncingWhenNoPeerSwarmQueueHasBeenAttached() { MockAnnouncerFactory mockAnnoucerFactory = new MockAnnouncerFactory(); Mock <IAgentNetwork> networkMock = new Mock <IAgentNetwork>(); MetaInfoFile file = new MetaInfoFile(Constants.SingleFileTorrent); file.Parse(); Manager manager = new Manager(); Agent agent = new Agent(new Manager(), new Assembler(), networkMock.Object); agent.Startup(); TorrentContext tc = new TorrentContext(file, new Selector(), new DiskIO(manager), Constants.DestinationDirectory); Tracker tracker = new Tracker(tc, mockAnnoucerFactory); agent.AddTorrent(tc);; BitTorrentException error = Assert.Throws <BitTorrentException>(() => tracker.StartAnnouncing()); Assert.Equal("BitTorrent Error: Peer swarm queue has not been set.", error.Message); }
public void TestStopAnnouncingOnOneThatHasNotBeenStarted() { MockAnnouncerFactory mockAnnoucerFactory = new MockAnnouncerFactory(); Mock <IAgentNetwork> networkMock = new Mock <IAgentNetwork>(); MetaInfoFile file = new MetaInfoFile(Constants.SingleFileTorrent); file.Parse(); Manager manager = new Manager(); Agent agent = new Agent(new Manager(), new Assembler(), networkMock.Object); agent.Startup(); TorrentContext tc = new TorrentContext(file, new Selector(), new DiskIO(manager), Constants.DestinationDirectory); Tracker tracker = new Tracker(tc, mockAnnoucerFactory); agent.AddTorrent(tc); agent.AttachPeerSwarmQueue(tracker); BitTorrentException error = Assert.Throws <BitTorrentException>(() => tracker.StopAnnouncing()); Assert.Equal("BitTorrent Error: Tracker is not running so cannot be stopped.", error.Message); }
public void TestSucessfullyCreateTrackerAndStartAnnoucing() { MockAnnouncerFactory mockAnnoucerFactory = new MockAnnouncerFactory(); Mock <IAgentNetwork> networkMock = new Mock <IAgentNetwork>(); MetaInfoFile file = new MetaInfoFile(Constants.SingleFileTorrent); file.Parse(); Manager manager = new Manager(); Agent agent = new Agent(new Manager(), new Assembler(), networkMock.Object); agent.Startup(); TorrentContext tc = new TorrentContext(file, new Selector(), new DiskIO(manager), Constants.DestinationDirectory); Tracker tracker = new Tracker(tc, mockAnnoucerFactory); agent.AddTorrent(tc); agent.AttachPeerSwarmQueue(tracker); tracker.StartAnnouncing(); TorrentDetails torrentDetails = agent.GetTorrentDetails(tc); Assert.Equal(TrackerStatus.Running, torrentDetails.trackerStatus); }
public void TestSetSeedingIntervalWhenNotSeeding() { MockAnnouncerFactory mockAnnoucerFactory = new MockAnnouncerFactory(); Mock <IAgentNetwork> networkMock = new Mock <IAgentNetwork>(); MetaInfoFile file = new MetaInfoFile(Constants.SingleFileTorrent); file.Parse(); Manager manager = new Manager(); Agent agent = new Agent(new Manager(), new Assembler(), networkMock.Object); agent.Startup(); TorrentContext tc = new TorrentContext(file, new Selector(), new DiskIO(manager), Constants.DestinationDirectory); Tracker tracker = new Tracker(tc, mockAnnoucerFactory); agent.AddTorrent(tc); agent.AttachPeerSwarmQueue(tracker); tracker.StartAnnouncing(); BitTorrentException error = Assert.Throws <BitTorrentException>(() => tracker.SetSeedingInterval(30)); Assert.Equal("BitTorrent Error: Cannot change interval as torrent is not seeding.", error.Message); }