예제 #1
0
        public async Task CreateTechnologyWithoutNameShouldReturnBadRequest()
        {
            var mockQueue = new Mock <IQueue>();
            var context   = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Role, "root"),
                        new Claim(ClaimTypes.Name, "")
                    })),
                }
            };

            _controller.ControllerContext = context;
            var technology = new TechnologyInput()
            {
                Category    = "Languages and Frameworks",
                Description = "",
                Name        = "",
                Key         = "c++",
                Scope       = ""
            };

            var result = await _controller.CreateTechnology(_mockRepository.Object, mockQueue.Object, technology);

            Assert.IsType <BadRequestResult>(result);
        }
예제 #2
0
        public async Task CreateTechnologyShouldSaveAsync()
        {
            var mockQueue = new Mock <IQueue>();
            var context   = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Role, "root"),
                        new Claim(ClaimTypes.Name, "")
                    })),
                }
            };

            _controller.ControllerContext = context;
            var technology = new TechnologyInput()
            {
                Category    = "Languages and Frameworks",
                Description = "",
                Name        = "C++",
                Key         = "c++",
                Scope       = ""
            };

            await _controller.CreateTechnology(_mockRepository.Object, mockQueue.Object, technology);

            _mockRepository.Verify(m => m.SaveAsync(It.IsAny <Technology>()));
            mockQueue.Verify(m => m.PublishAsync("history", It.IsAny <string>()));
        }
예제 #3
0
        public async Task CreateTechnologyShouldCatchArgumentExceptionAndReturnBadRequest()
        {
            var mockQueue = new Mock <IQueue>();
            var context   = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Role, "root"),
                        new Claim(ClaimTypes.Name, "")
                    })),
                }
            };

            _controller.ControllerContext = context;
            var technology = new TechnologyInput()
            {
                Category    = "Languages and Frameworks",
                Description = "",
                Name        = "C++",
                Key         = "c++",
                Scope       = ""
            };

            _mockRepository.Setup(m => m.SaveAsync(It.IsAny <Technology>()))
            .ThrowsAsync(new ArgumentException("exception"));

            var result = await _controller.CreateTechnology(_mockRepository.Object, mockQueue.Object, technology);

            _mockRepository.Verify(m => m.SaveAsync(It.IsAny <Technology>()));
            mockQueue.Verify(m => m.PublishAsync("history", It.IsAny <string>()), Times.Never());
            Assert.IsType <BadRequestObjectResult>(result);
        }