using Newtonsoft.Json; using NUnit.Framework; using TINK.Repository.Exception; using TINK.Repository.Response; namespace TestTINKLib.Fixtures.ObjectTests.Connector.Response { [TestFixture] public class TestResponseHelper { [Test] public void TestGetIsResponseOk_BikesOccupied_Ok() { var l_oResponse = JsonConvert.DeserializeObject(@"{ ""response_state"" : ""OK"" }"); Assert.NotNull(l_oResponse.GetIsResponseOk(ResponseHelper.BIKES_OCCUPIED_ACTIONTEXT)); } [Test] public void TestGetIsResponseOk_BikesOccupied_AuthcookieNotDefined() { var l_oResponseBase = JsonConvert.DeserializeObject($"{{ \"response_state\" : \"Failure 1003: authcookie not defined\" }}"); Assert.Throws(() => l_oResponseBase.GetIsResponseOk("Get not succeed")); } [Test] public void TestGetIsResponseOk_NoBikes() { var l_oResponse = JsonConvert.DeserializeObject( @"{ ""response_state"" : ""OK"", " + @"""authcookie"" : ""KeksoiF2kahH"" }"); Assert.That(() => l_oResponse.GetIsReserveResponseOk("8"), Throws.Exception.TypeOf()); } [Test] public void TestGetIsResposeOk_Booking_Declined() { var l_oResponse = JsonConvert.DeserializeObject(@"{ ""response_state"" : ""OK: booking_request declined. max count of 8 occupied bikes has been reached"", ""authcookie"" : ""KeksoiF2kahH"" }"); Assert.AreEqual( 8, Assert.Throws(() => l_oResponse.GetIsReserveResponseOk("8")).MaxBikesCount); } [Test] public void TestGetIsResposeOk_Logout_AutcookieUnknown() { var l_oResponse = JsonConvert.DeserializeObject($"{{ \"response_state\" : \"Failure 1004: authcookie not defined\"}}"); Assert.Throws(() => l_oResponse.GetIsResponseOk()); } [Test] public void TestGetIsReturnBikeResponseOk_Error() { var l_oResponse = JsonConvert.DeserializeObject( @"{ ""response_state"" : ""Failure 1234"", " + @"""authcookie"" : ""KeksoiF2kahH"" }"); Assert.That( () => l_oResponse.GetIsReturnBikeResponseOk("8"), Throws.Exception.TypeOf>()); } [Test] public void TestGetIsReturnBikeResponseOk_ErrorNotAtStation() { var l_oResponse = JsonConvert.DeserializeObject( @"{ ""response_state"" : ""Failure 2178: bike 1545 out of GEO fencing. 15986 meter distance to next station 66. OK: bike 1545 locked confirmed"", " + @"""authcookie"" : ""KeksoiF2kahH"" }"); Assert.That(() => l_oResponse.GetIsReturnBikeResponseOk("8"), Throws.Exception.TypeOf()); } [Test] public void TestGetIsReturnBikeResponseOk_ErrorNoGPSData() { var l_oResponse = JsonConvert.DeserializeObject( @"{ ""response_state"" : ""Failure 2245: No GPS data, state change forbidden."", " + @"""authcookie"" : ""KeksoiF2kahH"" }"); Assert.That(() => l_oResponse.GetIsReturnBikeResponseOk("8"), Throws.Exception.TypeOf()); } } }