コード例 #1
0
        public async Task ShouldGetVenueById()
        {
            CreateVenues();

            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            SetUser(venueController, _createdUser2.Entity.Id);

            ActionResult <VenueVm> result1 = await venueController.GetVenueAsync(1);

            VenueVm returnedVenue1 = result1.Value;

            Assert.AreEqual(1, returnedVenue1.Id);
            Assert.AreEqual("Venue 1", returnedVenue1.Name);
            Assert.AreEqual("Venue gate 123", returnedVenue1.Address);
            Assert.AreEqual("1236", returnedVenue1.PostalCode);
            Assert.AreEqual("12345678", returnedVenue1.ContactPhone);
            Assert.AreEqual("*****@*****.**", returnedVenue1.ContactEMail);

            ActionResult <VenueVm> result2 = await venueController.GetVenueAsync(2);

            VenueVm returnedVenue2 = result2.Value;

            Assert.AreEqual(2, returnedVenue2.Id);
            Assert.AreEqual(_venueName2, returnedVenue2.Name);
            Assert.AreEqual(_venueAddress2, returnedVenue2.Address);
            Assert.AreEqual(_postalCode2, returnedVenue2.PostalCode);
            Assert.AreEqual(_contactPhone2, returnedVenue2.ContactPhone);
            Assert.AreEqual(_contactEMail2, returnedVenue2.ContactEMail);
        }
コード例 #2
0
        public async Task ShouldUpdateVenue()
        {
            string newVenueName    = "Venue name ";
            string newVenueAddress = "Testing gate 216";

            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            CreateUser();
            CreateVenues();
            SetUser(venueController, _createdUser.Entity.Id);

            VenueVm venueVm = new VenueVm {
                Id = 2, Name = newVenueName, Address = newVenueAddress, PostalCode = _postalCode2, ContactEMail = _contactEMail2, ContactPhone = _contactPhone2, OrganizerId = 2
            };

            await venueController.UpdateVenueAsync(venueVm);

            // Check that only one has been changed
            Venue venue2 = _dbContext.Venues.Find(2);

            Assert.AreEqual(newVenueName, venue2.Name);
            Assert.AreEqual(newVenueAddress, venue2.Address);
        }
コード例 #3
0
        public async Task Delete_Get_IdNull_ReturnsNotFound()
        {
            var controller = new VenueController(null);
            var result     = await controller.Delete(null);

            Assert.IsType <NotFoundResult>(result);
        }
コード例 #4
0
        public async void BulkInsert_No_Errors()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();

            var mockResponse = ValidationResponseFactory <ApiVenueServerResponseModel> .CreateResponse(null as ApiVenueServerResponseModel);

            mockResponse.SetRecord(new ApiVenueServerResponseModel());
            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiVenueServerRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiVenueServerResponseModel> >(mockResponse));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var records = new List <ApiVenueServerRequestModel>();

            records.Add(new ApiVenueServerRequestModel());
            IActionResult response = await controller.BulkInsert(records);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var result = (response as OkObjectResult).Value as CreateResponse <List <ApiVenueServerResponseModel> >;

            result.Success.Should().BeTrue();
            result.Record.Should().NotBeEmpty();
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiVenueServerRequestModel>()));
        }
コード例 #5
0
        public async void Patch_No_Errors()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiVenueServerResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(true);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiVenueServerRequestModel>()))
            .Callback <int, ApiVenueServerRequestModel>(
                (id, model) => model.Address1.Should().Be("A")
                )
            .Returns(Task.FromResult <UpdateResponse <ApiVenueServerResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVenueServerResponseModel>(new ApiVenueServerResponseModel()));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiVenueServerModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiVenueServerRequestModel>();

            patch.Replace(x => x.Address1, "A");

            IActionResult response = await controller.Patch(default(int), patch);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            mock.ServiceMock.Verify(x => x.Update(It.IsAny <int>(), It.IsAny <ApiVenueServerRequestModel>()));
        }
コード例 #6
0
        public async Task Edit_Get_IDIsNull_ReturnsNotFound()
        {
            var controller = new VenueController(null);
            var result     = await controller.Edit(null);

            Assert.IsType <NotFoundResult>(result);
        }
コード例 #7
0
        public async Task ShouldCreateVenue()
        {
            string venueName3    = "Venue name 3";
            string venueAddress3 = "Testing gate 215";


            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            CreateUser();
            CreateVenues();
            SetUser(venueController, _createdUser2.Entity.Id);


            VenueVm venueVm = new VenueVm {
                Name = venueName3, Address = venueAddress3, PostalCode = "0258", ContactEMail = "*****@*****.**", ContactPhone = "1234578", OrganizerId = 2
            };

            await venueController.CreateVenueAsync(venueVm);

            ActionResult <List <VenueListVm> > result = await venueController.GetVenuesAsync();

            List <VenueListVm> venues = (List <VenueListVm>)((OkObjectResult)result.Result).Value;
            Venue createdVenue        = _dbContext.Venues.Find(3);

            Assert.AreEqual(3, venues.Count);
            Assert.That(venues, Has.Exactly(1).Matches <VenueListVm>(venue => venue.Id == createdVenue.Id &&
                                                                     venue.Name == createdVenue.Name &&
                                                                     venue.Address == createdVenue.Address
                                                                     ));
        }
コード例 #8
0
        public async Task Edit_Post_IdsNotEqual_ReturnsNotFound()
        {
            var testVenue  = GetTestVenues()[0];
            var controller = new VenueController(null);
            var result     = await controller.Edit(testVenue.ID + 1, testVenue);

            Assert.IsType <NotFoundResult>(result);
        }
コード例 #9
0
        public FunctionalTestExample()
        {
            var startup = new TestStartup();
            var host    = new HostBuilder()
                          .ConfigureWebJobs(startup.Configure)
                          .Build();

            controller = new VenueController(host.Services.GetRequiredService <IMediator>());
        }
コード例 #10
0
        public void Create_Get_ReturnsViewResultWithNoModel()
        {
            var controller = new VenueController(null);

            var result = controller.Create();

            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.Null(viewResult.ViewData.Model);
        }
コード例 #11
0
        public async Task Edit_Get_VenueIsNull_ReturnsNotFound()
        {
            var mockRepo = new Mock <IVenueRepository>();

            mockRepo.Setup(repo => repo.GetVenueAsync(It.IsAny <int>()))
            .ReturnsAsync(GetTestVenues().Where(v => v.ID == -1).FirstOrDefault());
            var controller = new VenueController(mockRepo.Object);
            var result     = await controller.Edit(It.IsAny <int>());

            Assert.IsType <NotFoundResult>(result);
        }
コード例 #12
0
        public async Task ShouldNotGetVenueWithoutPermissions()
        {
            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            SetUser(venueController, _createdUser2.Entity.Id);

            ActionResult <VenueVm> result = await venueController.GetVenueAsync(1);

            Assert.IsTrue(result.Result is ForbidResult);
        }
コード例 #13
0
        public async Task Delete_Get_Venue_ReturnsViewWithVenue()
        {
            var mockRepo = new Mock <IVenueRepository>();

            mockRepo.Setup(repo => repo.GetVenueAsync(It.IsAny <int>()))
            .ReturnsAsync(GetTestVenues()[0]);
            var controller = new VenueController(mockRepo.Object);
            var result     = await controller.Delete(It.IsAny <int>());

            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.IsAssignableFrom <Venue>(viewResult.ViewData.Model);
        }
コード例 #14
0
        public async Task Create_Post_Unsuccessful_ReturnsViewResult_WithVenue()
        {
            var controller = new VenueController(null);

            controller.ModelState.AddModelError("Name", "Required");
            var mockVenue = new Venue();

            var result = await controller.Create(mockVenue);

            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.IsAssignableFrom <Venue>(viewResult.ViewData.Model);
        }
コード例 #15
0
        public async Task Edit_Post_InvalidModelState_ReturnsViewWithModel()
        {
            var controller = new VenueController(null);

            controller.ModelState.AddModelError("Name", "Required");
            var mockVenue = new Venue();

            var result = await controller.Edit(0, mockVenue);

            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.IsAssignableFrom <Venue>(viewResult.ViewData.Model);
        }
コード例 #16
0
        public async Task DeleteConfirmed_ReturnsRedirectToAction()
        {
            var mockRepo = new Mock <IVenueRepository>();

            mockRepo.Setup(repo => repo.GetVenueAsync(It.IsAny <int>()))
            .ReturnsAsync(GetTestVenues()[0]);
            var controller = new VenueController(mockRepo.Object);
            var result     = await controller.DeleteConfirmed(It.IsAny <int>());

            var redirectToResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToResult.ControllerName);
            Assert.Equal("index", redirectToResult.ActionName);
        }
コード例 #17
0
        public async Task Edit_Post_ValidModelState_ReturnsRedirectToActionResult()
        {
            var testVenue = GetTestVenues()[0];
            var mockRepo  = new Mock <IVenueRepository>();

            mockRepo.Setup(repo => repo.Update(testVenue))
            .ReturnsAsync(testVenue);
            var controller = new VenueController(mockRepo.Object);
            var result     = await controller.Edit(testVenue.ID, testVenue);

            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal("details", redirectToActionResult.ActionName);
        }
コード例 #18
0
        public async Task Index_Get_ReturnsViewResult_WithAListOfVenues()
        {
            var mockRepo = new Mock <IVenueRepository>();

            mockRepo.Setup(repo => repo.GetVenuesAsync())
            .ReturnsAsync(GetTestVenues());
            var controller = new VenueController(mockRepo.Object);

            var result = await controller.Index();

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IEnumerable <Venue> >(viewResult.ViewData.Model);

            Assert.Equal(2, model.Count());
        }
コード例 #19
0
        public void testgetclient()
        {
            var context = CreateContext.getNewContext("TestingDB");
            var repo    = new ClientRepo(context);
            var VC      = new VenueController(repo);
            IEnumerable <Clients> Result = VC.Get();

            string[] names = { "Alabama Coffee", "Brad's Bistro" };
            int      count = 0;

            foreach (Clients c in Result)
            {
                Assert.Equal(c.ClientName, names[count]);
                count++;
            }
        }
コード例 #20
0
        public async void Get_Not_Exists()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVenueServerResponseModel>(null));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Get(default(int));

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }
コード例 #21
0
        public async Task Create_Post_Successful_ReturnsRedirectToAction()
        {
            var mockRepo = new Mock <IVenueRepository>();

            mockRepo.Setup(repo => repo.Create(GetTestVenues()[0]))
            .ReturnsAsync(GetTestVenues()[0]);
            var controller = new VenueController(mockRepo.Object);
            var mockVenue  = GetTestVenues()[0];

            var result = await controller.Create(mockVenue);

            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal("index", redirectToActionResult.ActionName);
        }
コード例 #22
0
        public void ShouldNotGetVenueWithInvalidId()
        {
            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            SetUser(venueController, _createdUser2.Entity.Id);
            CreateVenues();

            var ex = Assert.ThrowsAsync <HttpException>(async() =>
            {
                ActionResult <VenueVm> result = await venueController.GetVenueAsync(-1);
            });

            Assert.AreEqual("Ugyldig Id", ex.Message);
        }
コード例 #23
0
        public async void Delete_Errors()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.FromResult <ActionResponse>(mockResult.Object));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Delete(default(int));

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Delete(It.IsAny <int>()));
        }
コード例 #24
0
        public async Task ShouldGetOrganizerVenues()
        {
            CreateVenues();

            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            SetUser(venueController, _createdUser2.Entity.Id);

            ActionResult <List <VenueListVm> > resultAr = await venueController.GetOrganizerVenuesAsync();

            List <VenueListVm> result = resultAr.Value;

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(1, result[0].Id);
            Assert.AreEqual("Venue 1", result[0].Name);
        }
コード例 #25
0
        public async void All_Not_Exists()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();

            mock.ServiceMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(Task.FromResult <List <ApiVenueServerResponseModel> >(new List <ApiVenueServerResponseModel>()));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.All(1000, 0, string.Empty);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var items = (response as OkObjectResult).Value as List <ApiVenueServerResponseModel>;

            items.Should().BeEmpty();
            mock.ServiceMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()));
        }
コード例 #26
0
        public async void Update_NotFound()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiVenueServerResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiVenueServerRequestModel>())).Returns(Task.FromResult <UpdateResponse <ApiVenueServerResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVenueServerResponseModel>(null));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiVenueServerModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Update(default(int), new ApiVenueServerRequestModel());

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }
コード例 #27
0
        public async Task ShouldGetVenues()
        {
            CreateVenues();
            VenueService    venueService    = new VenueService(_dbContext, _mainEventProvider);
            SecurityService securityService = new SecurityService(_dbContext, _userManager, _roleManager);
            VenueController venueController = new VenueController(venueService, securityService);

            ActionResult <List <VenueListVm> > result = await venueController.GetVenuesAsync();

            List <VenueListVm> venues = (List <VenueListVm>)((OkObjectResult)result.Result).Value;

            Assert.AreEqual(2, venues.Count);
            Assert.AreEqual(1, venues[0].Id);
            Assert.AreEqual("Venue 1", venues[0].Name);
            Assert.AreEqual("Venue gate 123", venues[0].Address);
            Assert.AreEqual(2, venues[1].Id);
            Assert.AreEqual(_venueName2, venues[1].Name);
            Assert.AreEqual(_venueAddress2, venues[1].Address);
        }
コード例 #28
0
        public async void Patch_Record_Not_Found()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVenueServerResponseModel>(null));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiVenueServerRequestModel>();

            patch.Replace(x => x.Address1, "A");

            IActionResult response = await controller.Patch(default(int), patch);

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }
コード例 #29
0
        public async void Create_No_Errors()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();

            var mockResponse = new CreateResponse <ApiVenueResponseModel>(new FluentValidation.Results.ValidationResult());

            mockResponse.SetRecord(new ApiVenueResponseModel());
            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiVenueRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiVenueResponseModel> >(mockResponse));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Create(new ApiVenueRequestModel());

            response.Should().BeOfType <CreatedResult>();
            (response as CreatedResult).StatusCode.Should().Be((int)HttpStatusCode.Created);
            var createResponse = (response as CreatedResult).Value as CreateResponse <ApiVenueResponseModel>;

            createResponse.Record.Should().NotBeNull();
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiVenueRequestModel>()));
        }
コード例 #30
0
        public async void BulkInsert_Errors()
        {
            VenueControllerMockFacade mock = new VenueControllerMockFacade();

            var mockResponse = new Mock <CreateResponse <ApiVenueServerResponseModel> >(null as ApiVenueServerResponseModel);

            mockResponse.SetupGet(x => x.Success).Returns(false);

            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiVenueServerRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiVenueServerResponseModel> >(mockResponse.Object));
            VenueController controller = new VenueController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var records = new List <ApiVenueServerRequestModel>();

            records.Add(new ApiVenueServerRequestModel());
            IActionResult response = await controller.BulkInsert(records);

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiVenueServerRequestModel>()));
        }