public void ReturnAUserRequestWithTheSpecifiedDateTime() { DateTime expected = DateTime.MaxValue.GetRandom().ToMinutePrecision(); var actual = new UserRequestBuilder().AddRequestUtcDateTime(expected).Build(); Assert.Equal(expected, actual.RequestDateTimeUtc); }
public async Task RouteAnUnknownIntentToTheDefaultHandler() { string defaultRouteUri = $"http://{string.Empty.GetRandom()}"; var cmdProcessor = new Mock <ICommandProcessor>(MockBehavior.Loose); var routes = new RouteCollectionBuilder(defaultRouteUri) .Add(string.Empty.GetRandom(), string.Empty.GetRandom()) .Add(string.Empty.GetRandom(), string.Empty.GetRandom()) .Add(string.Empty.GetRandom(), string.Empty.GetRandom()) .Build().AsJsonString(); var routeCollection = new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("intentRoutes", routes) }; var config = new ConfigurationBuilder().AddInMemoryCollection(routeCollection).Build(); var containerBuilder = new Autofac.ContainerBuilder(); containerBuilder.RegisterInstance <ICommandProcessor>(cmdProcessor.Object); containerBuilder.RegisterInstance <IConfiguration>(config); var serviceProvider = new AutofacServiceProvider(containerBuilder.Build()); var request = new UserRequestBuilder().Random().Build(); var target = new ConfigRouter.Engine(serviceProvider); var actual = await target.HandleRequestAsync(request); cmdProcessor.Verify(p => p.ProcessAsync(defaultRouteUri, It.IsAny <UserRequest>()), Times.Once); }
public void ReturnAUserRequestWithTheSpecifiedIntent() { var intent = new IntentBuilder().Random().Build(); var actual = new UserRequestBuilder().AddIntent(intent).Build(); Assert.Equal(intent.Name, actual.Intent.Name); }
public void ReturnAUserRequestWithTheSpecifiedSource() { string expected = string.Empty.GetRandom(); var actual = new UserRequestBuilder().AddSource(expected).Build(); Assert.Equal(expected, actual.Source); }
public async Task RouteAnKnownIntentToTheProperHandlerUsingAJsonConfigFile() { string intentName = "hijklmnop"; string routeUri = $"http://www.{intentName}.com"; var cmdProcessor = new Mock <ICommandProcessor>(MockBehavior.Loose); var config = new ConfigurationBuilder() .AddJsonFile("routes.json") .Build(); var containerBuilder = new Autofac.ContainerBuilder(); containerBuilder.RegisterInstance <ICommandProcessor>(cmdProcessor.Object); containerBuilder.RegisterInstance <IConfiguration>(config); var serviceProvider = new AutofacServiceProvider(containerBuilder.Build()); var intent = new IntentBuilder().Random().AddName(intentName); var request = new UserRequestBuilder().Random().AddIntent(intent).Build(); var target = new ConfigRouter.Engine(serviceProvider); var actual = await target.HandleRequestAsync(request); cmdProcessor.Verify(p => p.ProcessAsync(routeUri, It.IsAny <UserRequest>()), Times.Once); }
public void WhenUserExists_ProfileIsReturned() { // Arrange var request = new UserRequestBuilder() .GetUser(testUserUsername) .Build(); // Act var response = Client.Execute(request, andExpect: System.Net.HttpStatusCode.OK).Content; // Assert /* * We have two ways we can assert the shape (and/or content) of the response contract ... */ // 1) Using JsonDocument: using var jsonResponse = JsonDocument.Parse(response); jsonResponse.RootElement.GetProperty("username").GetString().Should().NotBeNullOrEmpty(); jsonResponse.RootElement.GetProperty("username").GetString().Should().Be(testUserUsername); // 2) Using strict JsonSerializerOptions to deserialize to a strongly-typed object: var responseObject = JsonSerializer.Deserialize <UserProfileResponse>(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = false, }); responseObject.firstName.Should().NotBeNullOrEmpty(); responseObject.lastName.Should().NotBeNullOrEmpty(); responseObject.emailAddress.Should().NotBeNullOrEmpty(); responseObject.source.Should().BeOneOf(1, 2); responseObject.userStatus.Should().BeOneOf(0, 1); }
public void WhenRunningTests_CreateAUserIfItDoesntExist() { // Setup and check if test user exists SetupTest(); var request = new UserRequestBuilder() .GetUser(testUserUsername) .Build(); var response = Client.Execute(request); if (response.StatusCode == HttpStatusCode.OK) { return; } // Create test user var newUserRequest = new UserRequestBuilder() .CreateUser() .UsingTestData() .WithUsername(testUserUsername) .WithPassword(testUserPassword) .Build(); Client.Execute(newUserRequest, andExpect: System.Net.HttpStatusCode.Created); }
public async Task RouteAnUnknownIntentToTheDefaultHandler() { var containerBuilder = new Autofac.ContainerBuilder(); var httpResponseMessage = new Mock <IHttpResponseMessage>(); var httpResponseTask = Task.Run(() => httpResponseMessage.Object); httpResponseMessage.SetupGet(m => m.Content).Returns(_routesJson); var httpProxy = new Mock <IHttpProxy>(); httpProxy.Setup(p => p.GetAsync(It.IsAny <string>(), It.IsAny <IEnumerable <KeyValuePair <string, string> > >())).Returns(httpResponseTask); containerBuilder.RegisterInstance <IHttpProxy>(httpProxy.Object); var cmdProcessor = new Mock <ICommandProcessor>(MockBehavior.Loose); containerBuilder.RegisterInstance <ICommandProcessor>(cmdProcessor.Object); var serviceProvider = new AutofacServiceProvider(containerBuilder.Build()); var request = new UserRequestBuilder().Random().Build(); var target = new DataServiceRouter.Engine(serviceProvider, string.Empty); var actual = await target.HandleRequestAsync(request); cmdProcessor.Verify(p => p.ProcessAsync("abcdefg", It.IsAny <UserRequest>()), Times.Once); }
public Command BuildUserCommand() { var command = new Command("user"); var builder = new UserRequestBuilder(PathParameters, RequestAdapter); command.AddCommand(builder.BuildGetCommand()); return(command); }
public void ReturnAFullyPopulatedInstanceIfRandomIsSpecified() { var actual = new UserRequestBuilder().Random().Build(); Assert.NotNull(actual.User); Assert.False(string.IsNullOrWhiteSpace(actual.Source)); Assert.NotEqual(DateTime.MinValue, actual.RequestDateTimeUtc); Assert.NotNull(actual.Intent); }
public void WhenAddingAUserWithInvalidData_WeGetBadRequest() { // Arrange var request = new UserRequestBuilder() .CreateUser() .Build(); // Act/Assert Client.Execute(request, andExpect: System.Net.HttpStatusCode.BadRequest); }
public void ReturnAUserRequestWithTheSpecifiedUser() { var expected = (new UserBuilder().Random().Build()); var actual = new UserRequestBuilder().AddUser(expected).Build(); Assert.Equal(expected.Id, actual.User.Id); Assert.Equal(expected.FirstName, actual.User.FirstName); Assert.Equal(expected.LastName, actual.User.LastName); Assert.Equal(expected.AdditionalData.Count(), actual.User.AdditionalData.Count()); }
public void WhenUserDoesntExist_WeGetNotFound() { // Arrange const string NonExistentUser = "******"; var request = new UserRequestBuilder() .GetUser(NonExistentUser) .Build(); // Act Client.Execute(request, andExpect: System.Net.HttpStatusCode.NotFound); }
public void WhenWeAuthenticateWithInValidCredentials_WeAreDenied() { // Arrange var request = new UserRequestBuilder() .Authenticate(testUserUsername) .WithPassword(testUserUsername) .Build(); // Act Client.Execute(request, andExpect: System.Net.HttpStatusCode.Unauthorized); }
public HiDriveClient(IHiDriveAuthenticator authenticator) { Authenticator = authenticator ?? throw new ArgumentNullException(nameof(authenticator)); _httpClient = new HttpClient { BaseAddress = new Uri(ApiUrl), Timeout = Timeout.InfiniteTimeSpan }; _httpClient.DefaultRequestHeaders.AcceptCharset.Add(new StringWithQualityHeaderValue("utf-8")); _httpClient.DefaultRequestHeaders.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json")); Directory = new DirectoryRequestBuilder(this); File = new FileRequestBuilder(this); Meta = new MetaRequestBuilder(this); User = new UserRequestBuilder(this); }
public void WhenAddingAUserAndItExists_WeGetBadRequest() { // Arrange var request = new UserRequestBuilder() .CreateUser() .UsingTestData() .WithUsername(testUserUsername) .WithPassword(testUserPassword) .Build(); // Act/Assert Client.Execute(request, andExpect: System.Net.HttpStatusCode.BadRequest); }
public void WhenWeAuthenticateWithValidCredentials_WeGetAnOkResponseWithTheCorrectUser() { // Arrange var request = new UserRequestBuilder() .Authenticate(testUserUsername) .WithPassword(testUserPassword) .Build(); // Act var response = Client.Execute(request, andExpect: System.Net.HttpStatusCode.OK).As <UserProfileResponse>(); // Assert response.username.Should().Be(testUserUsername); }
public async Task<User> GetUserAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); return await userBuilder.Request().Select("id,displayName,jobTitle,email,userPrincipalName,department,mobilePhone,city,country,streetAddress").GetAsync(); } catch (Exception el) { el.ToString(); } return null; }
public async Task <User> GetUserAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); return(await userBuilder.Request().Select("id,displayName,jobTitle,email,userPrincipalName,department,mobilePhone,city,country,streetAddress").GetAsync()); } catch (Exception el) { el.ToString(); } return(null); }
public async Task <User> GetUserManagerAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); User user = (await userBuilder.Manager.Request().GetAsync()) as User; return(user); } catch (Exception el) { el.ToString(); } return(null); }
public async Task<User> GetUserManagerAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); User user = (await userBuilder.Manager.Request().GetAsync()) as User; return user; } catch (Exception el) { el.ToString(); } return null; }
public async Task <List <DriveItem> > GetUserFilesAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); return((await userBuilder.Drive.Root.Children.Request().GetAsync()).CurrentPage.ToList()); } catch (Exception el) { el.ToString(); } return(null); }
public async Task <List <DirectoryObject> > GetUserGroupsAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); var groups = (await userBuilder.MemberOf.Request().GetAsync()).CurrentPage.ToList(); var retGroups = groups.Where(i => i is Group).ToList(); return(retGroups); } catch (Exception el) { el.ToString(); } return(null); }
public async Task RouteAnKnownIntentToTheProperHandler() { string intentName = string.Empty.GetRandom(); string routeUri = $"http://{string.Empty.GetRandom()}"; var cmdProcessor = new Mock <ICommandProcessor>(MockBehavior.Loose); var containerBuilder = new Autofac.ContainerBuilder(); containerBuilder.RegisterInstance <ICommandProcessor>(cmdProcessor.Object); var serviceProvider = new AutofacServiceProvider(containerBuilder.Build()); var routes = new RouteCollectionBuilder(string.Empty.GetRandom()).Add(intentName, routeUri).Build(); var intent = new IntentBuilder().Random().AddName(intentName); var request = new UserRequestBuilder().Random().AddIntent(intent).Build(); var target = new SoftRouter.Engine(serviceProvider, routes); var actual = await target.HandleRequestAsync(request); cmdProcessor.Verify(p => p.ProcessAsync(routeUri, It.IsAny <UserRequest>()), Times.Once); }
public async Task<List<DriveItem>> GetUserFilesAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); return (await userBuilder.Drive.Root.Children.Request().GetAsync()).CurrentPage.ToList(); } catch (Exception el) { el.ToString(); } return null; }
public async Task<List<DirectoryObject>> GetUserGroupsAsync(string userId) { try { var graphServiceClient = await AuthenticationHelper.GetGraphServiceAsync(AuthenticationHelper.EndpointUrl); UserRequestBuilder userBuilder = new UserRequestBuilder(string.Format("{0}/users/{1}", AuthenticationHelper.EndpointUrl, userId), graphServiceClient); var groups = (await userBuilder.MemberOf.Request().GetAsync()).CurrentPage.ToList(); var retGroups = groups.Where(i => i is Group).ToList(); return retGroups; } catch (Exception el) { el.ToString(); } return null; }
public void ReturnAValidInstance() { var actual = new UserRequestBuilder().Build(); Assert.NotNull(actual); }
public void ReturnTheCurrentUtcDateTimeByDefault() { var actual = new UserRequestBuilder().Build(); Assert.Equal(DateTime.UtcNow.ToMinutePrecision(), actual.RequestDateTimeUtc.ToMinutePrecision()); }