public async void Search_200_Result() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services (request, umbCtx, typedContent, serviceContext, searchProvider) => { var mockSearchResults = new Mock <ISearchResults>(); mockSearchResults.Setup(results => results.TotalItemCount).Returns(10); mockSearchResults.Setup(results => results.Skip(It.IsAny <int>())).Returns(new[] { new SearchResult() { Id = 789 }, new SearchResult() { Id = 456 }, }); var mockSearchProvider = Mock.Get(searchProvider); mockSearchProvider.Setup(x => x.CreateSearchCriteria()).Returns(Mock.Of <ISearchCriteria>()); mockSearchProvider.Setup(x => x.Search(It.IsAny <ISearchCriteria>(), It.IsAny <int>())) .Returns(mockSearchResults.Object); var mockMemberService = Mock.Get(serviceContext.MemberService); mockMemberService.Setup(x => x.GetAllMembers(It.IsAny <int[]>())) .Returns(new[] { ModelMocks.SimpleMockedMember(789), ModelMocks.SimpleMockedMember(456) }); }); using (var server = TestServer.Create(builder => startup.Configuration(builder))) { var request = new HttpRequestMessage() { RequestUri = new Uri(string.Format("http://testserver/umbraco/rest/v1/{0}/search?lucene=parentID:\\-1", RouteConstants.MembersSegment)), Method = HttpMethod.Get, }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/hal+json")); Console.WriteLine(request); var result = await server.HttpClient.SendAsync(request); Console.WriteLine(result); var json = await((StreamContent)result.Content).ReadAsStringAsync(); Console.Write(JsonConvert.SerializeObject(JsonConvert.DeserializeObject(json), Formatting.Indented)); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); } }
public async Task Get_Root_Result() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services, (testServices) => { var mockMemberService = Mock.Get(testServices.ServiceContext.MemberService); var mockedOut = 0; mockMemberService.Setup(x => x.GetAll(It.IsAny <int>(), 100, out mockedOut)).Returns(new[] { ModelMocks.SimpleMockedMember(123, -1), ModelMocks.SimpleMockedMember(456, -1) }); }); using (var server = TestServer.Create(builder => startup.UseDefaultTestSetup(builder))) { var request = new HttpRequestMessage() { RequestUri = new Uri($"http://testserver/umbraco/rest/v1/{RouteConstants.MembersSegment}"), Method = HttpMethod.Get, }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/hal+json")); Console.WriteLine(request); var result = await server.HttpClient.SendAsync(request); Console.WriteLine(result); var json = await((StreamContent)result.Content).ReadAsStringAsync(); Console.Write(JsonConvert.SerializeObject(JsonConvert.DeserializeObject(json), Formatting.Indented)); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var asdf = GlobalConfiguration.Configuration; var djson = JsonConvert.DeserializeObject <JObject>(json); Assert.AreEqual("/umbraco/rest/v1/members{?page,size,query,orderBy,direction,memberTypeAlias}", djson["_links"]["root"]["href"].Value <string>()); Assert.AreEqual(0, djson["totalResults"].Value <int>()); } }
public async Task Search_200_Result() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services (testServices) => { var mockSearchResults = new Mock <ISearchResults>(); mockSearchResults.Setup(results => results.TotalItemCount).Returns(10); mockSearchResults.Setup(results => results.Skip(It.IsAny <int>())).Returns(new[] { new SearchResult() { Id = 789 }, new SearchResult() { Id = 456 }, }); var mockSearchProvider = Mock.Get(testServices.SearchProvider); mockSearchProvider.Setup(x => x.CreateSearchCriteria()).Returns(Mock.Of <ISearchCriteria>()); mockSearchProvider.Setup(x => x.Search(It.IsAny <ISearchCriteria>(), It.IsAny <int>())) .Returns(mockSearchResults.Object); var mockMemberService = Mock.Get(testServices.ServiceContext.MemberService); mockMemberService.Setup(x => x.GetAllMembers(It.IsAny <int[]>())) .Returns(new[] { ModelMocks.SimpleMockedMember(789), ModelMocks.SimpleMockedMember(456) }); }); await Search_200_Result(startup.UseDefaultTestSetup, RouteConstants.MembersSegment); }
public async Task Get_Metadata_Is_200() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services (testServices) => { var mockMemberService = Mock.Get(testServices.ServiceContext.MemberService); mockMemberService.Setup(x => x.GetById(It.IsAny <int>())).Returns(() => ModelMocks.SimpleMockedMember()); var mockTextService = Mock.Get(testServices.ServiceContext.TextService); mockTextService.Setup(x => x.Localize(It.IsAny <string>(), It.IsAny <CultureInfo>(), It.IsAny <IDictionary <string, string> >())) .Returns((string input, CultureInfo culture, IDictionary <string, string> tokens) => input); }); using (var server = TestServer.Create(builder => startup.UseDefaultTestSetup(builder))) { var request = new HttpRequestMessage() { RequestUri = new Uri(string.Format("http://testserver/umbraco/rest/v1/{0}/123/meta", RouteConstants.MembersSegment)), Method = HttpMethod.Get, }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/hal+json")); Console.WriteLine(request); var result = await server.HttpClient.SendAsync(request); Console.WriteLine(result); var json = await((StreamContent)result.Content).ReadAsStringAsync(); Console.Write(JsonConvert.SerializeObject(JsonConvert.DeserializeObject(json), Formatting.Indented)); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); //TODO: Assert values! } }
public async Task Get_Id_Result() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services (testServices) => { var mockMemberService = Mock.Get(testServices.ServiceContext.MemberService); mockMemberService.Setup(x => x.GetById(It.IsAny <int>())).Returns(() => ModelMocks.SimpleMockedMember()); }); using (var server = TestServer.Create(builder => startup.UseDefaultTestSetup(builder))) { var request = new HttpRequestMessage() { RequestUri = new Uri($"http://testserver/umbraco/rest/v1/{RouteConstants.MembersSegment}/123"), Method = HttpMethod.Get, }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/hal+json")); Console.WriteLine(request); var result = await server.HttpClient.SendAsync(request); Console.WriteLine(result); var json = await((StreamContent)result.Content).ReadAsStringAsync(); Console.Write(JsonConvert.SerializeObject(JsonConvert.DeserializeObject(json), Formatting.Indented)); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var djson = JsonConvert.DeserializeObject <JObject>(json); Assert.AreEqual($"/umbraco/rest/v1/members/{123.ToGuid()}", djson["_links"]["self"]["href"].Value <string>()); Assert.AreEqual("/umbraco/rest/v1/members{?page,size,query,orderBy,direction,memberTypeAlias}", djson["_links"]["root"]["href"].Value <string>()); var properties = djson["properties"].ToObject <IDictionary <string, object> >(); Assert.AreEqual(2, properties.Count()); Assert.IsTrue(properties.ContainsKey("TestProperty1")); Assert.IsTrue(properties.ContainsKey("testProperty2")); } }