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

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

            var expectedModel = new TestMeshNameFromClass();

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

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

            expectedModel.Id = id;

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

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

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

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

            var expectedModel = new TestMeshNameFromClass();

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

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

            Assert.Equal($"meshes/testmeshnamefromclass", passedUrl);
            Assert.Equal(expectedModel, passedModel);
            Assert.Equal(RequestDataFormat.Json, passedFormat);

            requestService.VerifyAll();
        }