public async Task ShouldSearchCompiledRequestHasCorrectQueryString()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl = string.Empty;

            requestService.Setup(x => x.GetRequest <PageResult <MeshNameAttributeClassTest> >(It.IsAny <string>())).Callback((string url) =>
            {
                passedUrl = url;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <PageResult <MeshNameAttributeClassTest> >()));
            }).Verifiable();

            var service    = new MeshesService(requestService.Object);
            var pageNumber = new Random().Next();
            var pageSize   = new Random().Next();

            await service.SearchAsync <MeshNameAttributeClassTest>(x => x.FavoriteNumber > 5000, OrderByDefinition <MeshNameAttributeClassTest> .OrderByDescending("FavoriteNumber"), pageNumber, pageSize).ConfigureAwait(false);

            var encodedFilter  = WebUtility.UrlEncode("{ \"FavoriteNumber\" : { \"$gt\" : 5000 } }");
            var encodedOrderBy = WebUtility.UrlEncode("{ FavoriteNumber:-1 }");

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}?filter={encodedFilter}&orderby={encodedOrderBy}&page={pageNumber}&pageSize={pageSize}", passedUrl);

            requestService.VerifyAll();
        }
        public async Task ShouldUpdateAsyncFromModelRequestHaveCorrectMeshNameFromAttributeAndUrl()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl   = string.Empty;
            var passedModel = default(MeshNameAttributeClassTest);

            var expectedModel = new MeshNameAttributeClassTest();

            requestService.Setup(x => x.PutRequest <MeshNameAttributeClassTest>(It.IsAny <string>(), It.IsAny <object>())).Callback((string url, object model) =>
            {
                passedUrl   = url;
                passedModel = model as MeshNameAttributeClassTest;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <MeshNameAttributeClassTest>()));
            }).Verifiable();

            var service = new MeshesService(requestService.Object);
            var id      = Generator.RandomString(25);

            expectedModel.Id = id;

            await service.UpdateAsync(expectedModel).ConfigureAwait(false);

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}/{id}", passedUrl);
            Assert.Equal(expectedModel, passedModel);

            requestService.VerifyAll();
        }
        public void ShouldSearchManualRequestHasCorrectQueryString()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl = string.Empty;

            requestService.Setup(x => x.GetRequest <PageResult <MeshNameAttributeClassTest> >(It.IsAny <string>())).Callback((string url) =>
            {
                passedUrl = url;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <PageResult <MeshNameAttributeClassTest> >()));
            }).Verifiable();

            var service    = new MeshesService(requestService.Object);
            var pageNumber = new Random().Next();
            var pageSize   = new Random().Next();

            var searchFilter = "{ 'FavoriteNumber': { '$gt': 5000 } }";
            var orderBy      = "{ FavoriteNumber: -1 }";

            service.Search <MeshNameAttributeClassTest>(searchFilter, orderBy, pageNumber, pageSize);
            var encodedFilter  = WebUtility.UrlEncode(searchFilter);
            var encodedOrderBy = WebUtility.UrlEncode("{ FavoriteNumber: -1 }");

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}?filter={encodedFilter}&orderby={encodedOrderBy}&page={pageNumber}&pageSize={pageSize}", passedUrl);

            requestService.VerifyAll();
        }
        public async Task ShouldCreateAsyncRequestHaveCorrectMeshNameFromAttributeAndUrl()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl    = string.Empty;
            var passedModel  = default(MeshNameAttributeClassTest);
            var passedFormat = default(RequestDataFormat);

            var expectedModel = new MeshNameAttributeClassTest();

            requestService.Setup(x => x.PostRequest <MeshNameAttributeClassTest>(It.IsAny <string>(), It.IsAny <object>(), It.IsAny <RequestDataFormat>())).Callback((string url, object model, RequestDataFormat format) =>
            {
                passedUrl    = url;
                passedModel  = model as MeshNameAttributeClassTest;
                passedFormat = format;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <MeshNameAttributeClassTest>()));
            }).Verifiable();

            var service = new MeshesService(requestService.Object);
            await service.CreateAsync(expectedModel).ConfigureAwait(false);

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}", passedUrl);
            Assert.Equal(expectedModel, passedModel);
            Assert.Equal(RequestDataFormat.Json, passedFormat);

            requestService.VerifyAll();
        }
        public async Task ShouldGetAsyncRequestHaveCorrectMeshNameFromAttributeAndUrl()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl = string.Empty;

            requestService.Setup(x => x.GetRequest <MeshNameAttributeClassTest>(It.IsAny <string>())).Callback((string url) =>
            {
                passedUrl = url;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <MeshNameAttributeClassTest>()));
            }).Verifiable();

            var service = new MeshesService(requestService.Object);
            var id      = Generator.RandomString(25);
            await service.GetDataAsync <MeshNameAttributeClassTest>(id).ConfigureAwait(false);

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}/{id}", passedUrl);
            requestService.VerifyAll();
        }
        public async Task ShouldSearchManualAsyncRequestHaveCorrectMeshNameFromAttributeAndUrl()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl = string.Empty;

            requestService.Setup(x => x.GetRequest <PageResult <MeshNameAttributeClassTest> >(It.IsAny <string>())).Callback((string url) =>
            {
                passedUrl = url;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <PageResult <MeshNameAttributeClassTest> >()));
            }).Verifiable();

            var service = new MeshesService(requestService.Object);

            await service.SearchAsync <MeshNameAttributeClassTest>().ConfigureAwait(false);

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}?filter=&orderby=&page=1&pageSize=25", passedUrl);

            requestService.VerifyAll();
        }
        public void ShouldSearchCompiledRequestHaveCorrectMeshNameFromAttributeAndUrl()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl = string.Empty;

            requestService.Setup(x => x.GetRequest <PageResult <MeshNameAttributeClassTest> >(It.IsAny <string>())).Callback((string url) =>
            {
                passedUrl = url;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <PageResult <MeshNameAttributeClassTest> >()));
            }).Verifiable();

            var service = new MeshesService(requestService.Object);

            service.Search <MeshNameAttributeClassTest>(x => true);
            var encodedFilter = WebUtility.UrlEncode("{ }");

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}?filter={encodedFilter}&orderby=&page=1&pageSize=25", passedUrl);

            requestService.VerifyAll();
        }
        public void ShouldDeleteRequestHaveCorrectMeshNameFromAttributeAndUrl()
        {
            var requestService = new Mock <IRequestService>();

            var passedUrl = string.Empty;

            requestService.Setup(x => x.DeleteRequest <object>(It.IsAny <string>())).Callback((string url) =>
            {
                passedUrl = url;
            }).Returns(() =>
            {
                return(Task.FromResult(It.IsAny <object>()));
            }).Verifiable();

            var service = new MeshesService(requestService.Object);
            var id      = Generator.RandomString(25);

            service.Delete <MeshNameAttributeClassTest>(id);

            Assert.Equal($"meshes/{MeshName.ToLowerInvariant()}/{id}", passedUrl);

            requestService.VerifyAll();
        }
Example #9
0
 public override int GetHashCode()
 {
     return(MeshName.GetHashCode());
 }