public void TestCreateClient() { // Arrange string testURL = "http://test.org:8080/api/"; string testAPIKey = "test12345"; Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); // Act KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Assert httpClient.VerifyAll(); }
public static async Task testStuff() { HttpClientWrapper httpClient = new HttpClientWrapper(new HttpClient()); KegbotHttpRESTClient c = new KegbotHttpRESTClient("http://192.168.1.101:30080/api/", "5b94a95f58e4e371c8ee4c466740e2cc", httpClient); try { User adminUser = await c.GetUser("admin"); List<Drink> adminDrinks = await c.GetUserDrinks("admin"); //List<Drink> allDrinks = await c.GetDrinks(); List<Keg> allKegs = await c.GetKegs(); foreach(Keg k in allKegs) { Keg k1 = await c.GetKeg(k.Id); List<Drink> k1Drinks = await c.GetKegDrinks(k.Id); List<Session> k1Sessions = await c.GetKegSessions(k.Id); } List<KegTap> taps = await c.GetTaps(); foreach(KegTap t in taps) { KegTap k = await c.GetTap(t.MeterName); RecordedDrink rd = await c.RecordDrink(t.MeterName, 0, 568.26, "admin", null, null, null, "test"); Drink d = await c.GetDrink(rd.Id); //bool success = await c.CancelDrink(d.Id, false); } } catch (KegbotAPIException e) { } }
public async Task TestGetTapErrorResponse() { // Arrange string testURL = "http://test.org:8080/api/"; string getURL = "taps/test_tap"; string testAPIKey = "test12345"; string tapName = "test_tap"; HttpResponseMessage responseMessage = new HttpResponseMessage(HttpStatusCode.NotFound); ErrorResponse payload = new ErrorResponse(); payload.MetaData = new Meta() { Result = "error" }; payload.Error = new Error() { Code = "NotFoundError", Message = "No KegTap matches the given query."}; string content = JsonConvert.SerializeObject(payload); Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); responseMessage.Content = new StringContent(content, System.Text.Encoding.UTF8, "application/json"); httpClient.Setup(c => c.GetAsync(It.Is<string>(s => s == getURL))).Returns(Task.FromResult(responseMessage)).Verifiable(); KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Act try { KegTap k = await client.GetTap(tapName); } catch (KegbotAPIException e) { // Assert Assert.IsNotNull(e.Error); Assert.AreEqual(e.Error.Code.ToString(), payload.Error.Code); Assert.AreEqual(e.Error.Message.ToString(), payload.Error.Message); } httpClient.VerifyAll(); }
public async Task TestRecordDrinkErrorResponse() { // Arrange string testURL = "http://test.org:8080/api/"; string putURL = "taps/1"; string testAPIKey = "test12345"; string tap = "1"; int ticks = 2; int volume = 3; string username = "******"; int pourTime = 4; int now = 5; int duration = 6; string shout = "test"; HttpResponseMessage responseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError); ErrorResponse payload = new ErrorResponse(); payload.MetaData = new Meta() { Result = "error" }; payload.Error = new Error() { Code = "ServerError", Message = "Something bad happened!" }; string content = JsonConvert.SerializeObject(payload); Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); responseMessage.Content = new StringContent(content, System.Text.Encoding.UTF8, "application/json"); httpClient.Setup(c => c.PostAsync(It.Is<string>(s => s == putURL),It.IsAny<HttpContent>())).Returns(Task.FromResult(responseMessage)).Verifiable(); KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Act try { RecordedDrink drink = await client.RecordDrink(tap, ticks, volume, username, pourTime, now, duration, shout); } catch (KegbotAPIException e) { // Assert Assert.IsNotNull(e.Error); Assert.AreEqual(e.Error.Code.ToString(), payload.Error.Code); Assert.AreEqual(e.Error.Message.ToString(), payload.Error.Message); } httpClient.VerifyAll(); }
public async Task TestRecordDrinkMissingNow() { // Arrange string testURL = "http://test.org:8080/api/"; string testAPIKey = "test12345"; string tap = "1"; int ticks = 2; int volume = 3; string username = "******"; int pourTime = 4; int? now = null; int duration = 6; string shout = "test"; HttpResponseMessage responseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError); Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Act try { RecordedDrink drink = await client.RecordDrink(tap, ticks, volume, username, pourTime, now, duration, shout); } catch (ArgumentNullException e) { // Assert Assert.AreEqual(e.ParamName , "now"); } httpClient.VerifyAll(); }
public async Task TestGetUserDrinksErrorResponse() { // Arrange string testURL = "http://test.org:8080/api/"; string getURL = "users/test_user/drinks"; string testAPIKey = "test12345"; string userName = "******"; HttpResponseMessage responseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError); ErrorResponse payload = new ErrorResponse(); payload.MetaData = new Meta() { Result = "error" }; payload.Error = new Error() { Code = "ServerError", Message = "Something bad happened!" }; string content = JsonConvert.SerializeObject(payload); Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); responseMessage.Content = new StringContent(content, System.Text.Encoding.UTF8, "application/json"); httpClient.Setup(c => c.GetAsync(It.Is<string>(s => s == getURL))).Returns(Task.FromResult(responseMessage)).Verifiable(); KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Act try { List<Drink> drinks = await client.GetUserDrinks(userName); } catch (KegbotAPIException e) { // Assert Assert.IsNotNull(e.Error); Assert.AreEqual(e.Error.Code.ToString(), payload.Error.Code); Assert.AreEqual(e.Error.Message.ToString(), payload.Error.Message); } httpClient.VerifyAll(); }
public async Task TestGetUserDrinksSuccess() { // Arrange string testURL = "http://test.org:8080/api/"; string getURL = "users/test_user/drinks"; string testAPIKey = "test12345"; string userName = "******"; HttpResponseMessage responseMessage = new HttpResponseMessage(HttpStatusCode.OK); DrinksPayload payload = new DrinksPayload(); payload.MetaData = new Meta() { Result = "ok" }; payload.Drinks = new List<Drink>(); payload.Drinks.Add(new Drink()); payload.Drinks.Add(new Drink()); string content = JsonConvert.SerializeObject(payload); responseMessage.Content = new StringContent(content, System.Text.Encoding.UTF8, "application/json"); Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); httpClient.Setup(c => c.GetAsync(It.Is<string>(s => s == getURL))).Returns(Task.FromResult(responseMessage)).Verifiable(); KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Act List<Drink> drinks = await client.GetUserDrinks(userName); // Assert Assert.AreEqual(payload.Drinks.Count, drinks.Count); for (int i = 0; i < drinks.Count; i++) { Assert.AreEqual(drinks[i], payload.Drinks[i]); } httpClient.VerifyAll(); }
public async Task TestGetUserSuccess() { // Arrange string testURL = "http://test.org:8080/api/"; string getURL = "users/test_user"; string testAPIKey = "test12345"; string userName = "******"; HttpResponseMessage responseMessage = new HttpResponseMessage(HttpStatusCode.OK); UserPayload payload = new UserPayload(); payload.MetaData = new Meta() { Result = "ok" }; payload.User = new User(); string content = JsonConvert.SerializeObject(payload); responseMessage.Content = new StringContent(content, System.Text.Encoding.UTF8, "application/json"); Mock<IHttpClient> httpClient = SetupClient(testURL, testAPIKey); httpClient.Setup(c => c.GetAsync(It.Is<string>(s => s == getURL))).Returns(Task.FromResult(responseMessage)).Verifiable(); KegbotHttpRESTClient client = new KegbotHttpRESTClient(testURL, testAPIKey, httpClient.Object); // Act User u = await client.GetUser(userName); // Assert Assert.AreEqual(payload.User, u); httpClient.VerifyAll(); }