public void TestDictionaryGeneration() { var checkin = new CheckIn("offset", "timezone", 1); Assert.AreEqual(checkin.BodyParameters["gmt_offset"], "offset"); Assert.AreEqual(checkin.BodyParameters["timezone"], "timezone"); Assert.AreEqual(checkin.BodyParameters["bid"], 1); Assert.IsFalse(checkin.BodyParameters.ContainsKey("geolat")); checkin.Geolat = 4; Assert.IsTrue(checkin.BodyParameters.ContainsKey("geolat")); Assert.AreEqual(checkin.BodyParameters["geolat"], 4); Assert.IsFalse(checkin.BodyParameters.ContainsKey("geolng")); checkin.Geolng = 4; Assert.IsTrue(checkin.BodyParameters.ContainsKey("geolng")); Assert.AreEqual(checkin.BodyParameters["geolng"], 4); Assert.IsFalse(checkin.BodyParameters.ContainsKey("shout")); checkin.Shout = "shout"; Assert.IsTrue(checkin.BodyParameters.ContainsKey("shout")); Assert.AreEqual(checkin.BodyParameters["shout"], "shout"); Assert.IsFalse(checkin.BodyParameters.ContainsKey("rating")); checkin.Rating = 2; Assert.IsTrue(checkin.BodyParameters.ContainsKey("rating")); Assert.AreEqual(checkin.BodyParameters["rating"], 2); }
public void TestAccessors() { Assert.Throws<ArgumentNullException>(() => { new CheckIn(string.Empty, "timezone", 1); }); Assert.Throws<ArgumentNullException>(() => { new CheckIn("1", string.Empty, 1); }); var checkin = new CheckIn("offset", "timezone", 1); Assert.IsNotNullOrEmpty(checkin.RequestMethod.ToString()); Assert.Throws<ArgumentOutOfRangeException>(() => { checkin.Rating = -1; }); Assert.Throws<ArgumentOutOfRangeException>(() => { checkin.Rating = 6; }); Assert.Throws<ArgumentOutOfRangeException>(() => { checkin.Shout = new String('d', 141); }); checkin.Rating = 3; Assert.AreEqual(3, checkin.Rating); var t = "tst"; checkin.Shout = t; Assert.IsNotNullOrEmpty(checkin.EndPoint); Assert.AreEqual(checkin.Shout, t); }
public void ConfirmRequestWorks() { var mockCreds = new Mock<IUnAuthenticatedUntappdCredentials>(); mockCreds.Setup(a => a.AuthenticationData).Returns(new ReadOnlyDictionary<string, string>(new Dictionary<string, string>() { {"client_id", "id"}, {"client_secret", "secret"} })); var bodyParam = new Dictionary<string, object> { { "key", "value" } }; var client = new Mock<IRestClient>(); var request = new Mock<IRestRequest>(); request.Setup(a => a.AddParameter(It.IsAny<string>(), It.IsAny<string>())); request.Setup(a => a.AddParameter(It.IsAny<string>(), It.IsAny<string>())); var response = new Mock<IRestResponse>(); response.Setup(a => a.Content).Returns(File.ReadAllText("../../Responses/Json/BeerInfo.json")); client.Setup(a => a.Execute(It.IsAny<IRestRequest>())).Callback(() => { }).Returns(response.Object); client.Setup(a => a.ExecuteTaskAsync(It.IsAny<IRestRequest>())).Callback(() => { }).Returns(Task.Run(() => response.Object)); #pragma warning disable CS0618 // Type or member is obsolete Using as intended var repository = new Repository(client.Object, request.Object); #pragma warning restore CS0618 // Type or member is obsolete repository.Get<BeerInfo>(mockCreds.Object, "awesome", bodyParam); request.Verify(a => a.AddParameter("client_id", mockCreds.Object.AuthenticationData["client_id"])); request.Verify(a => a.AddParameter("client_secret", mockCreds.Object.AuthenticationData["client_secret"])); request.Verify(a => a.AddParameter("key", "value")); repository.GetAsync<BeerInfo>(mockCreds.Object, "awesome", bodyParam).Wait(); request.Verify(a => a.AddParameter("client_id", mockCreds.Object.AuthenticationData["client_id"])); request.Verify(a => a.AddParameter("client_secret", mockCreds.Object.AuthenticationData["client_secret"])); request.Verify(a => a.AddParameter("key", "value")); var mockAuthCreds = new Mock<IAuthenticatedUntappdCredentials>(); mockAuthCreds.Setup(a => a.AuthenticationData).Returns(new ReadOnlyDictionary<string, string>(new Dictionary<string, string>() { {"access_token", "accessToken"} })); repository.Get<BeerInfo>(mockAuthCreds.Object, "awesome", bodyParam); request.Verify(a => a.AddParameter("key", "value")); request.Verify(a => a.AddParameter("access_token", "accessToken")); repository.GetAsync<BeerInfo>(mockAuthCreds.Object, "awesome", bodyParam).Wait(); request.Verify(a => a.AddParameter("key", "value")); request.Verify(a => a.AddParameter("access_token", "accessToken")); mockAuthCreds.Setup(a => a.AuthenticationData).Returns(new ReadOnlyDictionary<string, string>(new Dictionary<string, string>() { {"access_token", "PostaccessToken"} })); var checkin = new CheckIn("-5", "EST", 1044097) { Shout = "Awesome Brew", Rating = 4 }; repository.FailFast = true; repository.OnExceptionThrown += (sender, e) => { Assert.IsNotNull(sender); Assert.IsNotNull(e); }; Assert.Throws<HttpErrorException>(() => repository.Post(mockAuthCreds.Object, checkin)); repository.FailFast = false; repository.Post(mockAuthCreds.Object, checkin); request.Verify(a => a.AddParameter("access_token", "PostaccessToken")); mockAuthCreds.Setup(a => a.AuthenticationData).Returns(new ReadOnlyDictionary<string, string>(new Dictionary<string, string>() { {"access_token", "PostAsyncaccessToken"} })); repository.PostAsync(mockAuthCreds.Object, checkin).Wait(); request.Verify(a => a.AddParameter("access_token", "PostAsyncaccessToken")); }