public Task <TaskInfoList> GetInfo(IEnumerable <string> ids, AdditionalInfoFlags additional = AdditionalInfoFlags.None) { if (ids == null) { throw new ArgumentNullException(nameof(ids)); } var stringIds = String.Join(",", ids); if (String.IsNullOrWhiteSpace(stringIds)) { throw new ArgumentException("Collection is empty.", nameof(ids)); } var parameters = new Dictionary <string, object>() { { "api", "SYNO.DownloadStation.Task" }, { "version", 1 }, { "method", "getinfo" }, { "id", stringIds }, { "_sid", _authInfo.SessionId } }; if (additional != AdditionalInfoFlags.None) { parameters["additional"] = additional.ToString().ToLowerInvariant().Replace(" ", ""); } return(_client.GetAsync <TaskInfoList>(@"DownloadStation/task.cgi", parameters)); }
public async Task GetInfoTest(IEnumerable <string> ids, AdditionalInfoFlags flags, string idsExpected, string flagsExpected) { IDictionary <string, object> parameters = null; _clientMock.Setup((client => client.GetAsync <TaskInfoList>(It.IsAny <string>(), It.IsAny <IDictionary <string, object> >()))) .Callback <string, IDictionary <string, object> >((s, objects) => { parameters = objects; }) .ReturnsAsync(new TaskInfoList()); var result = await _service.GetInfo(ids, flags); _clientMock.Verify((client => client.GetAsync <TaskInfoList>("DownloadStation/task.cgi", It.IsAny <IDictionary <string, object> >())), Times.Once); Assert.That(result, Is.Not.Null); var expected = new Dictionary <string, object>() { { "api", "SYNO.DownloadStation.Task" }, { "version", 1 }, { "method", "getinfo" }, { "id", idsExpected }, { "_sid", _authInfo.SessionId } }; if (flagsExpected != null) { expected["additional"] = flagsExpected; } CollectionAssert.AreEquivalent(expected, parameters); }
public Task <TaskInfoList> ListTasks(int offset = 0, int limit = -1, AdditionalInfoFlags additional = AdditionalInfoFlags.None) { var parameters = new Dictionary <string, object>() { { "api", "SYNO.DownloadStation.Task" }, { "version", 1 }, { "method", "list" }, { "offset", offset }, { "limit", limit }, { "_sid", _authInfo.SessionId } }; if (additional != AdditionalInfoFlags.None) { parameters["additional"] = additional.ToString().ToLowerInvariant().Replace(" ", ""); } return(_client.GetAsync <TaskInfoList>(@"DownloadStation/task.cgi", parameters)); }