public async Task CreateClanAsync_ShouldBeOfTypeOkObjectResult()
        {
            // Arrange
            TestMock.ClanService.Setup(clanService => clanService.CreateClanAsync(It.IsAny <UserId>(), It.IsAny <string>()))
            .ReturnsAsync(new DomainValidationResult <Clan>())
            .Verifiable();

            var clansController = new ClansController(TestMock.ClanService.Object, TestMapper)
            {
                ControllerContext =
                {
                    HttpContext = MockHttpContextAccessor.GetInstance()
                }
            };

            var request = new CreateClanRequest
            {
                Name    = "DONTINVADE",
                Summary = "URSSINWINTER"
            };

            // Act
            var result = await clansController.CreateClanAsync(request);

            // Assert
            result.Should().BeOfType <OkObjectResult>();

            TestMock.ClanService.Verify(clanService => clanService.CreateClanAsync(It.IsAny <UserId>(), It.IsAny <string>()), Times.Once);
        }
        public async void ShouldReturnOkObjectResultWithClans()
        {
            var expectedClans = new List <Clan>()
            {
                new Clan()
                {
                    Name = "Test clan 1"
                },
                new Clan()
                {
                    Name = "Test clan 2"
                },
                new Clan()
                {
                    Name = "Test clan 3"
                },
            };

            _clanServiceMock = new Mock <IClanService>();
            _controller      = new ClansController(_clanServiceMock.Object);

            _clanServiceMock
            .Setup(x => x.ReadAllAsync())
            .ReturnsAsync(expectedClans);

            var result = await _controller.ReadAllAsync();

            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.Same(expectedClans, okResult.Value);
        }
        public void Index()
        {
            var controller = new ClansController();

            var result = controller.Index();

            Assert.IsType <ViewResult>(result);
            Assert.NotNull(result);
        }
        public async Task FetchClansAsync_ShouldBeOfTypeNoContentResult()
        {
            // Arrange
            TestMock.ClanService.Setup(clanService => clanService.FetchClansAsync()).ReturnsAsync(new List <Clan>()).Verifiable();

            var clansController = new ClansController(TestMock.ClanService.Object, TestMapper);

            // Act
            var result = await clansController.FetchClansAsync();

            // Assert
            result.Should().BeOfType <NoContentResult>();

            TestMock.ClanService.Verify(clanService => clanService.FetchClansAsync(), Times.Once);
        }
        public async Task FindClanAsync_ShouldBeOfTypeOkObjectResult()
        {
            // Arrange
            TestMock.ClanService.Setup(clanService => clanService.FindClanAsync(It.IsAny <ClanId>())).ReturnsAsync(new Clan("Test", new UserId())).Verifiable();

            var clansController = new ClansController(TestMock.ClanService.Object, TestMapper);

            // Act
            var result = await clansController.FindClanAsync(new ClanId());

            // Assert
            result.Should().BeOfType <OkObjectResult>();

            TestMock.ClanService.Verify(clanService => clanService.FindClanAsync(It.IsAny <ClanId>()), Times.Once);
        }
 public ClansControllerTest()
 {
     ClanServiceMock     = new Mock <IClanService <Clan> >(); // IClanService mock
     ControllerUnderTest = new ClansController(ClanServiceMock.Object);
 }