using System; using System.Collections.Generic; using Newtonsoft.Json; using NUnit.Framework; using LCU.Library.Internal.CoreApiWrapperLib.Utilities; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests; namespace LCU.Api.Internal.CoreApiWrapperTest.Utilities { public class HttpUtilitiesTest { [Test] public void BuildJsonBody_Returns_FullUri() { var testHost = "test.com"; var testEndpoint = "test/endpoint"; var result = HttpUtilities.BuildHttpsUri(testHost, testEndpoint); var testCompare = new Uri($"https://{testHost}{testEndpoint}"); Assert.NotNull(result); Assert.AreEqual(testCompare, result); } [Test] public void BuildJsonBody_Returns_UriWithouEndpoint() { var testHost = "test.com"; var testEndpoint = ""; var result = HttpUtilities.BuildHttpsUri(testHost, testEndpoint); var testCompare = new Uri($"https://{testHost}"); Assert.NotNull(result); Assert.AreEqual(testCompare, result); } [Test] public void BuildEndPointWithParams_Returns_EndpointWith_TwoParams() { var testEndpoint = "test/endpoint"; var paramDictionary = new Dictionary(); paramDictionary.Add("testparam1", "test1"); paramDictionary.Add("testparam2", "test2"); var result = HttpUtilities.BuildEndPointWithParams(testEndpoint, paramDictionary); var testCompare = $"{testEndpoint}?testparam1=test1&testparam2=test2"; Assert.NotNull(result); Assert.AreEqual(testCompare, result); } [Test] public void BuildEndPointWithParams_Returns_EndpointWith_NoParams() { var testEndpoint = "test/endpoint"; var paramDictionary = new Dictionary(); var result = HttpUtilities.BuildEndPointWithParams(testEndpoint, paramDictionary); var testCompare = $"{testEndpoint}"; Assert.NotNull(result); Assert.AreEqual(testCompare, result); } [Test] public void ReplaceRootParameter_Returns_RootParamReplaced() { var testEndpoint = "test/{Test}/endpoint"; var testPlaceholder = "{Test}"; var testValue = "dasdwerwqer-1321dsaffew423"; var result = HttpUtilities.ReplaceRootParameter(testEndpoint, testPlaceholder, testValue); Assert.NotNull(result); Assert.AreEqual("test/dasdwerwqer-1321dsaffew423/endpoint", result); } [Test] public void ReplaceRootParameter_RootParamPlaceHolder_DoesNotExist_Return_EndPoint() { var testEndpoint = "test/endpoint"; var testPlaceholder = "{Test}"; var testValue = "dasdwerwqer-1321dsaffew423"; var result = HttpUtilities.ReplaceRootParameter(testEndpoint, testPlaceholder, testValue); Assert.NotNull(result); Assert.AreEqual("test/endpoint", result); } [Test] public void BuildDictionaryOfValues_Returns_OneProperty_InDictionary() { var personRequest = new PersonNameRequest() { FirstName = "Test" }; var testCompare = new Dictionary(); testCompare.Add("FirstName", "Test"); var result = HttpUtilities.BuildDictionaryOfNonNullValues(personRequest); Assert.NotNull(result); Assert.AreEqual(1, result.Count); Assert.AreEqual(testCompare, result); } [Test] public void BuildDictionaryOfValues_Returns_TwoProperty_InDictionary() { var personRequest = new PersonNameRequest() { FirstName = "Test", LastName = "Test Last" }; var testCompare = new Dictionary(); testCompare.Add("FirstName", "Test"); testCompare.Add("LastName", "Test Last"); var result = HttpUtilities.BuildDictionaryOfNonNullValues(personRequest); Assert.NotNull(result); Assert.AreEqual(2, result.Count); Assert.AreEqual(testCompare, result); } [Test] public void BuildDictionaryOfValues_Returns_EmptyDictionary() { var personRequest = new PersonNameRequest(); var result = HttpUtilities.BuildDictionaryOfNonNullValues(personRequest); Assert.NotNull(result); Assert.Zero(result.Count); } [Test] public void BuildJsonBody_Returns_OneProperty_JsonWithout_NullFields() { var personRequest = new PersonNameRequest() { FirstName = "Test" }; var testCompare = new Dictionary(); testCompare.Add("FirstName", "Test"); var jsonTestCompare = JsonConvert.SerializeObject(testCompare); var result = HttpUtilities.BuildJsonOfNonNullProperties(personRequest); Assert.NotNull(result); Assert.AreEqual(jsonTestCompare, result); } [Test] public void BuildJsonBody_Returns_OneProperty_JJsonWithout_NullFields() { var personRequest = new PersonNameRequest() { FirstName = "Test", LastName = "Test Last" }; var testCompare = new Dictionary(); testCompare.Add("FirstName", "Test"); testCompare.Add("LastName", "Test Last"); var jsonTestCompare = JsonConvert.SerializeObject(testCompare); var result = HttpUtilities.BuildJsonOfNonNullProperties(personRequest); Assert.NotNull(result); Assert.AreEqual(jsonTestCompare, result); } [Test] public void BuildJsonBody_Returns_EmptyString() { var personRequest = new PersonNameRequest(); var result = HttpUtilities.BuildJsonOfNonNullProperties(personRequest); Assert.NotNull(result); Assert.AreEqual("", result); } } }