public static JobCategory Map(this JobCategoryApiResponse resp)
        {
            if (resp != null)
            {
                return(new JobCategory
                {
                    DocumentId = resp.Uri != null?Guid.Parse(resp.Uri.Segments.Last().TrimEnd('/')) : Guid.NewGuid(),
                                     Description = resp.Description,
                                     Title = resp.Title,
                                     Uri = resp.Uri,
                                     Links = resp.Links,
                                     //Build a fake URI to get the last segment
                                     CanonicalName = new Uri("http://unspecifiedhost" + resp.WebsiteUri).Segments.Last().TrimEnd('/'),
                });
            }

            throw new InvalidOperationException($"{nameof(resp)} is null");
        }
        public void MapJobCategoryApiResponseToJobCategoryReturnsJobProfile()
        {
            // arrange
            var apiJobCategory = new JobCategoryApiResponse {
                Description = "An emergency services category", WebsiteUri = new Uri("http://somewhere/something/something-else/"), Title = "Emergency Services", Uri = new Uri($"http://someuri/jobcategory/identifier/{Guid.NewGuid()}"), Links = new List <Link> {
                    new Link {
                        LinkValue = new KeyValuePair <string, Models.DynamicLink>("jobprofile", new Models.DynamicLink {
                            Href = new Uri($"http://someuri/jobprofile/identifier/{Guid.NewGuid()}")
                        })
                    }
                }
            };

            // act
            var jobCategory = apiJobCategory.Map();

            // assert
            Assert.NotNull(apiJobCategory);
            Assert.Equal(apiJobCategory.Title, jobCategory.Title);
            Assert.Equal(apiJobCategory.Description, jobCategory.Description);
            Assert.Equal(apiJobCategory.Uri, jobCategory.Uri);
            Assert.Equal(apiJobCategory.Links, jobCategory.Links);
            Assert.Equal(apiJobCategory.WebsiteUri.Segments.Last().TrimEnd('/'), jobCategory.CanonicalName);
        }