private async Task <IActionResult> GetResponseByType(QrCodeController controller, object instance, string typeOverride) { var response = instance switch { CreateBookmarkModel => await controller.Bookmark(instance as CreateBookmarkModel), CreateCalendarEventModel => await controller.Calendar(instance as CreateCalendarEventModel), CreateContactDataEventModel => await controller.ContactData(instance as CreateContactDataEventModel), CreateEmailModel => await controller.Email(instance as CreateEmailModel), CreateGeoLocationModel => await controller.Geolocation(instance as CreateGeoLocationModel), CreateTextMessageModel => await controller.TextMessage(instance as CreateTextMessageModel), CreateWhatsAppMessageModel => await controller.WhatsApp(instance as CreateWhatsAppMessageModel), CreateUrlModel => await controller.Website(instance as CreateUrlModel), CreateWifiModel => await controller.Wifi(instance as CreateWifiModel), _ => null }; if (typeOverride != null) { if (typeOverride == "text") { response = await controller.Text(instance); } else if (typeOverride == "json") { response = await controller.Json(instance); } } return(response); }
private QrCodeController CreateController(bool modelStateInvalid = false) { var renderOptions = CreateQrCodeRenderOptions(); var httpContext = new DefaultHttpContext(); httpContext.Request.Host = new HostString("localhost"); httpContext.Request.Scheme = "http"; var controller = new QrCodeController( renderOptions, qrCodeRendererMock.Object, CreateApiKeyProvider(), imageServiceMock.Object, GetConfiguration() ) { ControllerContext = new ControllerContext { HttpContext = httpContext, } }; if (modelStateInvalid) { controller.ModelState.AddModelError("key", "modelError"); } return(controller); }
public void Get_ShouldReturnProperHttpResponse() { var url = "http://github.com"; var mockRepository = new Mock <IQrCodeService>(); var expectedResponse = new HttpResponseMessage(HttpStatusCode.OK); mockRepository .Setup(x => x.GenerateQrCode(url)) .Returns(expectedResponse); var controller = new QrCodeController(mockRepository.Object); var actualResponse = controller.Get(url); Assert.AreEqual(expectedResponse, actualResponse); }