public Functional() { var appEnv = CallContextServiceLocator.Locator.ServiceProvider.GetService(typeof(IApplicationEnvironment)) as IApplicationEnvironment; Debug.Assert(appEnv != null, "appEnv != null"); var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath); builder.AddJsonFile("config.json"); builder.AddJsonFile("config.private.json", true); var configuration = builder.Build(); var uri = new Uri(configuration["ServerCredentialUri"]); var username = configuration["ServerCredentialUsername"]; var password = configuration["ServerCredentialPassword"]; _serverCredential = new ServerCredential(uri, username, password); _freeMusicTorrentFile = new HttpClient().GetByteArrayAsync( new Uri("http://bt.etree.org/download.php/582271/hottuna2015-09-11.flac16.torrent")).Result; _freeMusicTorrentHash = "9ecc7229ff971d27552dd399509e188847dbbbf1"; // Make sure there is no torrents before executing the tests var api = new Api(_serverCredential); var torrents = api.GetTorrents().Result; if (torrents.Any()) { var result = api.Perform(Action.Removedata, torrents.Select(t => t.InfoHash)).Result; Assert.True(result); } }
public async Task ScenarioTypicalUse() { var api = new Api(_serverCredential); var resultAddTorrent = await api.AddTorrent(_freeMusicTorrentFile); Assert.True(resultAddTorrent); Thread.Sleep(60*1000); var torrents = await api.GetTorrents(); Assert.True(torrents.Count == 1); Assert.Equal(_freeMusicTorrentHash, torrents.First().InfoHash); var properties = await api.GetProperties(_freeMusicTorrentHash); properties.Label = "free-music"; var resultSetProperty = await api.SetProperties(_freeMusicTorrentHash, properties); Assert.True(resultSetProperty); Thread.Sleep(1500); var torrentsAfterLabelChange = await api.GetTorrents(); Assert.Equal(properties.Label, torrentsAfterLabelChange.First().Label); Thread.Sleep(1500); var files = await api.GetFiles(_freeMusicTorrentHash); var rnd = new Random(); var randomFileIndex = rnd.Next(files.Count); var setFilePriorityResult = await api.SetFilePriority(_freeMusicTorrentHash, randomFileIndex, 0); Assert.True(setFilePriorityResult); // TODO : Investigate why peers are sometimes unavailable //var peers = await api.GetPeers(_freeMusicTorrentHash); //Assert.True(peers.Count > 0); var deleteResult = await api.Perform(Action.Removedata, _freeMusicTorrentHash); Assert.True(deleteResult); Thread.Sleep(1500); Assert.True((await api.GetTorrents()).Count == 0); }