public async void NoDuplicateSoldProduct() { Guid serial = Guid.NewGuid(); SoldProduct product = new SoldProduct { SerialNumber = serial }; RaffleDbContext context = getDb("NoDupe"); context.SoldProducts.Add(product); await context.SaveChangesAsync(); RaffleEntry entry = getEntry(); entry.SoldProduct.SerialNumber = serial; RaffleApiController controller = new RaffleApiController( context, new EntryValidator()); IStatusCodeActionResult result = await controller.PostRaffleEntry(entry); StatusCodeResult statusResult = Assert.IsType <StatusCodeResult>(result); Assert.Equal((int)HttpStatusCode.OK, statusResult.StatusCode); Assert.Equal(1, await context.SoldProducts.CountAsync()); }
public INdjsonWriter CreateWriter(ActionContext context, IStatusCodeActionResult result) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } HttpResponse response = context.HttpContext.Response; response.ContentType = CONTENT_TYPE; if (result.StatusCode != null) { response.StatusCode = result.StatusCode.Value; } DisableResponseBuffering(context.HttpContext); return(new NewtonsoftNdjsonWriter(_httpResponseStreamWriterFactory.CreateWriter(response.Body, Encoding.UTF8), _options.SerializerSettings, _jsonArrayPool)); }
public static void Equal(BotResponseCode expectedBotResponseCode, IStatusCodeActionResult result) { AssertStatusCode(result); // Check if the value is the expected response code. Assert.Equal(expectedBotResponseCode, (BotResponseCode)((OkObjectResult)result).Value); }
public async Task TDeleteFile() { IActionResult result = await Controller.Delete(Filename1); Assert.IsAssignableFrom <IStatusCodeActionResult>(result); IStatusCodeActionResult statusResult = (IStatusCodeActionResult)result; Assert.Equal(404, statusResult.StatusCode); Assert.Empty(_container.StoredFiles); _container.StoredFiles.AddOrUpdate(Filename2, SomeDataStream, (k, v) => throw new Exception("should not be present")); result = await Controller.Delete(Filename2); Assert.IsAssignableFrom <IStatusCodeActionResult>(result); statusResult = (IStatusCodeActionResult)result; Assert.Equal(202, statusResult.StatusCode); Assert.Empty(_container.StoredFiles); _container.StoredFiles.AddOrUpdate(Filename1, SomeDataStream, (k, v) => throw new Exception("should not be present")); _container.StoredFiles.AddOrUpdate(Filename2, SomeDataStream, (k, v) => throw new Exception("should not be present")); result = await Controller.Delete(Filename2); Assert.IsAssignableFrom <IStatusCodeActionResult>(result); statusResult = (IStatusCodeActionResult)result; Assert.Equal(202, statusResult.StatusCode); Assert.Single(_container.StoredFiles.Keys, Filename1); }
public INdjsonWriter CreateWriter(ActionContext context, IStatusCodeActionResult result) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } HttpResponse response = context.HttpContext.Response; response.ContentType = CONTENT_TYPE; if (result.StatusCode != null) { response.StatusCode = result.StatusCode.Value; } DisableResponseBuffering(context.HttpContext); return(new NdjsonWriter(response.Body, _options)); }
public override async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) { await base.OnResultExecutionAsync(context, next); #if NETCOREAPP2_1 bool isCacheable = IsCacheableStatusCode(context.HttpContext.Response?.StatusCode); #else IStatusCodeActionResult actionResult = context.Result as IStatusCodeActionResult; bool isCacheable = actionResult != null ? IsCacheableStatusCode(actionResult.StatusCode) : IsCacheableStatusCode(context.HttpContext.Response?.StatusCode); #endif if (!isCacheable) { return; } IServiceProvider serviceProvider = context.HttpContext.RequestServices; IApiCacheOutput cache = serviceProvider.GetRequiredService(typeof(IApiCacheOutput)) as IApiCacheOutput; CacheKeyGeneratorFactory cacheKeyGeneratorFactory = serviceProvider.GetRequiredService(typeof(CacheKeyGeneratorFactory)) as CacheKeyGeneratorFactory; ICacheKeyGenerator cacheKeyGenerator = cacheKeyGeneratorFactory.GetCacheKeyGenerator(cacheKeyGeneratorType); string controllerName = this.controller ?? (context.ActionDescriptor as ControllerActionDescriptor)?.ControllerTypeInfo.FullName; string baseCacheKey = cacheKeyGenerator.MakeBaseCacheKey(controllerName, this.methodName); await cache.RemoveStartsWithAsync(baseCacheKey); }
public static void Equal(string expectedResult, IStatusCodeActionResult result) { AssertStatusCode(result); // Check if the value is the expected result string. Assert.Equal(expectedResult, ((OkObjectResult)result).Value); }
private static void AssertStatusCode(IStatusCodeActionResult result) { // Check if it is a success statusCode. Assert.NotNull(result); Assert.NotNull(result?.StatusCode); Assert.Equal((int)HttpStatusCode.OK, result.StatusCode.Value); }
public INdjsonWriter<T> CreateWriter<T>(ActionContext context, IStatusCodeActionResult result) { if (context is null) { throw new ArgumentNullException(nameof(context)); } if (result is null) { throw new ArgumentNullException(nameof(result)); } HttpResponse response = context.HttpContext.Response; response.ContentType = CONTENT_TYPE; if (result.StatusCode != null) { response.StatusCode = result.StatusCode.Value; } context.HttpContext.DisableResponseBuffering(); return new SystemTextNdjsonWriter<T>(response.Body, _jsonSerializerOptions); }
public static bool IsSuccessStatusCode(this ActionResult actionResult) { var statusCode = actionResult switch { IStatusCodeActionResult x => x.StatusCode, _ => (int?)null }; return(statusCode.HasValue && statusCode.Value >= (int)HttpStatusCode.OK && statusCode.Value < (int)HttpStatusCode.Ambiguous); } }
/// <summary> /// Initializes a new instance of the <see cref="SpecificObjectResult{T}"/> class with the message and a code from the parameters. /// </summary> /// <param name="message">The message<see cref="string"/></param> /// <param name="status"><see cref="IStatusCodeActionResult"/> StatusCode of which will be used</param> public SpecificObjectResult(string message, IStatusCodeActionResult status) : base(message) { if (status.StatusCode != 200) { StatusCode = status.StatusCode; } else { StatusCode = 500; } }
public JobController( IClientService clientService, IJobService jobService, IMapper mapper, IStatusCodeActionResult errorStatusCode) { _clientService = clientService; _jobService = jobService; _mapper = mapper; _errorStatusCode = errorStatusCode; }
internal bool TryMap(Exception exception, HttpContext context, out IStatusCodeActionResult actionResult) { foreach (var mapper in ExceptionMappers) { if (mapper.TryMap(exception, context, out actionResult)) { return(true); } } actionResult = default; return(false); }
internal bool TryMap(HttpResponse response, out IStatusCodeActionResult actionResult) { foreach (var mapper in HttpResponseMappers) { if (mapper.TryMap(response, out actionResult)) { return(true); } } actionResult = default; return(false); }
public int?PostPincode(string email) { // Arrange User mockUser = new User(email, 24.0); _mailService.Setup(x => x.SendMail(It.IsAny <string>(), It.IsAny <string>())).Returns(true); // Act IStatusCodeActionResult result = (IStatusCodeActionResult)_controller.PostPincode(mockUser); // Assert return(result.StatusCode); }
public async void ValidatorIsUsed() { RaffleApiController controller = new RaffleApiController( getDb("ValidatorTest"), new EntryValidator()); RaffleEntry entry = getEntry(); IStatusCodeActionResult result = await controller.PostRaffleEntry(entry); StatusCodeResult statusResult = Assert.IsType <StatusCodeResult>(result); Assert.Equal((int)HttpStatusCode.BadRequest, statusResult.StatusCode); }
public int?PostLogin(string id, string email, string pincode, double carEmission) { // Arrange User mockUser = new User(id, email, carEmission); mockUser.UpdatePincode(pincode, DateTime.Now.AddDays(365)); _userService.Setup(x => x.ValidatePincode("*****@*****.**", "1234")).Returns(mockUser); // Act IStatusCodeActionResult result = (IStatusCodeActionResult)_controller.PostLogin(mockUser); // Assert return(result.StatusCode); }
public int?PostRegister(string email, double kml, string fuelType) { // Arrange User mockUser = new User(email, 24); RegisterInput mockInput = new RegisterInput(mockUser, kml, fuelType); _userService.Setup(x => x.Create(mockUser)).Returns(mockUser); // Act IStatusCodeActionResult result = (IStatusCodeActionResult)_controller.PostRegister(mockInput); // Assert return(result.StatusCode); }
public int?DeleteUser(string id) { // Arrange User mockUser = new User("1", "*****@*****.**", 24.0); _userService.Setup(x => x.Get("1")).Returns(mockUser); _userService.Setup(x => x.Remove(id)); // Act IStatusCodeActionResult result = ((IStatusCodeActionResult)_controller.Delete(id)); // Assert return(result.StatusCode); }
public async void BadModelReturns400() { RaffleApiController controller = new RaffleApiController( getDb("badModel"), getMockValidator(true)); controller.ModelState.AddModelError("FirstName", "Must not be null."); IStatusCodeActionResult result = await controller.PostRaffleEntry(new RaffleEntry()); StatusCodeResult statusResult = Assert.IsType <StatusCodeResult>(result); Assert.Equal((int)HttpStatusCode.BadRequest, statusResult.StatusCode); }
private Task ExecuteActionResultAsync(HttpContext context, IStatusCodeActionResult actionResult) { context.Response.Clear(); // Make sure problem responses are never cached. context.Response.Headers.Append(HeaderNames.CacheControl, "no-cache, no-store, must-revalidate"); context.Response.Headers.Append(HeaderNames.Pragma, "no-cache"); context.Response.Headers.Append(HeaderNames.Expires, "0"); context.Response.StatusCode = actionResult.StatusCode.Value; var routeData = context.GetRouteData() ?? _emptyRouteData; var actionContext = new ActionContext(context, routeData, _emptyActionDescriptor); return(actionResult.ExecuteResultAsync(actionContext)); }
private bool TryCreateActionResult(HttpContext context, Exception ex, out IStatusCodeActionResult actionResult) { if (ex != null && _options.Value.TryMap(ex, context, out actionResult)) { return(true); } if (_options.Value.TryMap(context.Response, out actionResult)) { return(true); } actionResult = default; return(false); }
public int?GetTrips(string email) { // Arrange if (email == "*****@*****.**") { _utility.Setup(x => x.GetToken(It.IsAny <HttpRequest>())).Returns("test"); _authenticationService.Setup(x => x.ValidateToken("test")).Returns(new User("1", 1)); } // Act IStatusCodeActionResult result = (IStatusCodeActionResult)_controller.Get(); // Assert return(result.StatusCode); }
public async void CheckStatsException() { string expected = "500"; GetStatsQuery getquery = new GetStatsQuery(); StatsView statitics = new StatsView(1, 1); _mediator .Setup(m => m.Send(It.IsAny <GetStatsQuery>(), It.IsAny <CancellationToken>())) .Throws(new Exception()).Verifiable(); var result = await _sut.GetStats(); IStatusCodeActionResult statusCodeResult = result.Result as IStatusCodeActionResult; Assert.Equal(expected, statusCodeResult.StatusCode.ToString()); _mediator.VerifyAll(); }
public void AddSpendingAndListIt() { // Arrange using (SpendingContext spendingContext = new SpendingContext()) { SpendingRepository spendingRepository = new SpendingRepository(spendingContext); SpendingController sut = new SpendingController(spendingRepository); // Act IStatusCodeActionResult actionResult = sut.AddSpending(1, DateTime.UtcNow.AddDays(-1), 100, "USD", "Misc", "Armor") as IStatusCodeActionResult; // Assert Assert.Equal(200, actionResult.StatusCode); ObjectResult listResult = sut.ListByUserId(1, "Date") as ObjectResult; IEnumerable <SpendingDto> spendings = (IEnumerable <SpendingDto>)listResult.Value; Assert.Single(spendings); } }
/// <summary> /// Maps the HTTP response error to a ProblemDetailsResult. /// </summary> /// <param name="response">The HTTP response.</param> /// <param name="actionResult">A representation of the HTTP response error as a ProblemDetailsResult.</param> public bool TryMap(HttpResponse response, out IStatusCodeActionResult actionResult) { actionResult = default; if (!CanMap(response.StatusCode)) { return(false); } try { actionResult = Map(response); return(true); } catch { return(false); } }
/// <summary> /// Maps the exception to a ProblemDetailsResult. /// </summary> /// <param name="exception">The exception to map.</param> /// <param name="context">The current HTTP context.</param> /// <param name="actionResult">A representation of the exception as a ProblemDetailsResult.</param> public virtual bool TryMap(Exception exception, HttpContext context, out IStatusCodeActionResult actionResult) { actionResult = default; if (!CanMap(exception.GetType())) { return(false); } try { actionResult = Map(exception, context); return(true); } catch { return(false); } }
/// <summary> /// Maps the exception to a ProblemDetailsResult. /// </summary> /// <param name="exception">The exception to map.</param> /// <param name="context">The current HTTP context.</param> /// <param name="actionResult">A representation of the exception as a ProblemDetailsResult.</param> public virtual bool TryMap(Exception exception, HttpContext context, out IStatusCodeActionResult actionResult) { _ = exception ?? throw new ArgumentNullException(nameof(exception)); actionResult = default; if (!CanMap(exception.GetType())) { return(false); } try { actionResult = Map(exception, context); return(true); } catch { return(false); } }
/// <summary> /// Maps the HTTP response error to a ProblemDetailsResult. /// </summary> /// <param name="response">The HTTP response.</param> /// <param name="actionResult">A representation of the HTTP response error as a ProblemDetailsResult.</param> public bool TryMap(HttpResponse response, out IStatusCodeActionResult actionResult) { _ = response ?? throw new ArgumentNullException(nameof(response)); actionResult = default; if (!CanMap(response.StatusCode)) { return(false); } try { actionResult = Map(response); return(true); } catch { return(false); } }
public int?Patch(string email, string date, string tripId, Transport transport) { // Arrange if (email == "*****@*****.**") { _utility.Setup(x => x.GetToken(It.IsAny <HttpRequest>())).Returns("test"); _authenticationService.Setup(x => x.ValidateToken("test")).Returns(new User("1", 1)); _extractionService.Setup(x => x.UpdateTrip("2", It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Transport>())).Returns(true); } JObject obj = new JObject(); obj["date"] = date; obj["tripId"] = tripId; obj["transport"] = (int)transport; // Act IStatusCodeActionResult result = (IStatusCodeActionResult)_controller.Patch(obj); // Assert return(result.StatusCode); }