Ejemplo n.º 1
0
        public async void ValidateInputModel()
        {
            UserManager <ApplicationUser> userManager = MockUserManager();

            var mockSubscribesService = new Mock <ISubscribesService>();

            SubscribesController controller = new SubscribesController(
                userManager,
                mockSubscribesService.Object).WithIdentity(FirstTestUserId, "TestUser");

            ActionResult <SubscribeResponseModel> result = await controller.Subscribe(null);

            Assert.IsType <BadRequestResult>(result.Result);

            result = await controller.Subscribe(new SubscribeInputModel()
            {
                UserId = null,
                Follow = true,
            });

            Assert.IsType <BadRequestResult>(result.Result);

            result = await controller.Subscribe(new SubscribeInputModel()
            {
                UserId = FirstTestUserId,
                Follow = true,
            });

            Assert.IsType <BadRequestResult>(result.Result);
        }
Ejemplo n.º 2
0
        public async void TestSubscribeFunctionality()
        {
            UserManager <ApplicationUser> userManager = MockUserManager();

            var mockSubscribesService = new Mock <ISubscribesService>();

            mockSubscribesService.Setup(x => x.ManageUserSubsctibe(FirstTestUserId, SecondTestUserId, true))
            .ReturnsAsync(true);
            mockSubscribesService.Setup(x => x.ManageUserSubsctibe(FirstTestUserId, SecondTestUserId, false))
            .ReturnsAsync(false);

            SubscribesController controller = new SubscribesController(
                userManager,
                mockSubscribesService.Object).WithIdentity(FirstTestUserId, "TestUser");

            ActionResult <SubscribeResponseModel> result = await controller.Subscribe(null);

            Assert.IsType <BadRequestResult>(result.Result);

            result = await controller.Subscribe(new SubscribeInputModel()
            {
                UserId = SecondTestUserId,
                Follow = true,
            });

            Assert.True(result.Value.Result);

            result = await controller.Subscribe(new SubscribeInputModel()
            {
                UserId = SecondTestUserId,
                Follow = false,
            });

            Assert.False(result.Value.Result);
        }
Ejemplo n.º 3
0
        public async Task Get_Subscriptions_Success()
        {
            // Arrange
            var fakeSubId  = 1;
            var fakeChatId = 1;
            var fakeSub    = GetSubscribeFake(fakeSubId, fakeChatId);
            List <Subscribe> fakeSubscribes = new List <Subscribe>()
            {
                fakeSub
            };

            _subscribeRepositoryMock.Setup(x => x.GetSubscribersAsync(It.IsAny <int>()))
            .Returns(Task.FromResult(fakeSubscribes.Select(x => x.ChatId).ToList()));

            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResult = await subController.GetSubscribersAsync(fakeSub.BotId);

            // Assert
            Assert.AreEqual((actionResult.Result as OkObjectResult).StatusCode, (int)System.Net.HttpStatusCode.OK);
            Assert.AreEqual((((ObjectResult)actionResult.Result).Value as List <int>), fakeSubscribes.Select(x => x.ChatId).ToList());
        }
Ejemplo n.º 4
0
        public void CheckControllerDecoratedWithValidateAntiForgeryToken()
        {
            UserManager <ApplicationUser> userManager = MockUserManager();

            var mockSubscribesService = new Mock <ISubscribesService>();

            SubscribesController controller = new SubscribesController(
                userManager,
                mockSubscribesService.Object).WithIdentity(FirstTestUserId, "TestUser");

            var type       = controller.GetType();
            var methodInfo = type.GetMethod("Subscribe", new Type[] { typeof(SubscribeInputModel) });
            var attributes = methodInfo.GetCustomAttributes(typeof(ValidateAntiForgeryTokenAttribute), true);

            Assert.True(attributes.Any(), "No ValidateAntiForgeryTokenAttribute found on Index method");
        }
Ejemplo n.º 5
0
        public async Task Subscribe_With_Null_Subscription_Should_Return_Bad_Request()
        {
            // Arrange
            Subscribe subscription = null;

            _subscribeRepositoryMock.Setup(x => x.SubscribeAsync(It.IsAny <Subscribe>()));

            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResult = await subController.SubscribeAsync(subscription) as BadRequestResult;

            // Assert
            Assert.NotNull(actionResult);
        }
Ejemplo n.º 6
0
        public async Task Delete_Subscription_Success()
        {
            // Arrange
            var fakeBotName = "name";
            var fakeChatId  = 1;

            _subscribeRepositoryMock.Setup(x => x.DeleteSubscriptionAsync(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(Task.FromResult(true));
            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResult = await subController.DeleteSubscribeAsync(fakeBotName, fakeChatId) as NoContentResult;

            // Assert
            Assert.NotNull(actionResult);
        }
Ejemplo n.º 7
0
        public async Task Get_Subscriptions_With_Empty_List_Success()
        {
            // Arrange
            var fakeBotId = 1;

            _subscribeRepositoryMock.Setup(x => x.GetSubscribersAsync(It.IsAny <int>()))
            .Returns(Task.FromResult(new List <int>()));
            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResult = await subController.GetSubscribersAsync(fakeBotId);

            // Assert
            Assert.AreEqual((actionResult.Result as OkObjectResult).StatusCode, (int)System.Net.HttpStatusCode.OK);
            Assert.IsEmpty(((ObjectResult)actionResult.Result).Value as List <int>);
        }
Ejemplo n.º 8
0
        public async Task Delete_With_Zero_Chat_Id_Should_Return_Bad_Request()
        {
            // Arrange
            var fakeBotName = "name";
            var fakeChatId  = 0;

            _subscribeRepositoryMock.Setup(x => x.DeleteSubscriptionAsync(It.IsAny <string>(), It.IsAny <int>()));

            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResultEmpty = await subController.DeleteSubscribeAsync(fakeBotName, fakeChatId) as BadRequestResult;

            // Assert
            Assert.NotNull(actionResultEmpty);
        }
Ejemplo n.º 9
0
        public async Task Subscribe_With_Success()
        {
            // Arrange
            var fakeSubId  = 1;
            var fakeChatId = 1;
            var fakeSub    = GetSubscribeFake(fakeSubId, fakeChatId);

            _subscribeRepositoryMock.Setup(x => x.SubscribeAsync(It.IsAny <Subscribe>()));

            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResult = await subController.SubscribeAsync(fakeSub) as OkResult;

            // Assert
            Assert.NotNull(actionResult);
        }
Ejemplo n.º 10
0
        public async Task Get_Subscriptions_With_LessOrZero_Id_Should_Return_Bad_Request()
        {
            // Arrange
            var fakeBotId     = 0;
            var fakeBotIdLess = -1;

            _subscribeRepositoryMock.Setup(x => x.GetSubscribersAsync(It.IsAny <int>()));

            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResult     = (await subController.GetSubscribersAsync(fakeBotId)).Result as BadRequestResult;
            var actionResultLess = (await subController.GetSubscribersAsync(fakeBotIdLess)).Result as BadRequestResult;

            // Assert
            Assert.NotNull(actionResult);
            Assert.NotNull(actionResultLess);
        }
Ejemplo n.º 11
0
        public async Task Delete_With_Null_Or_Empty_Bot_Name_Should_Return_Bad_Request()
        {
            // Arrange
            var    fakeBotNameEmpty = string.Empty;
            string fakeBotNameNull  = null;
            var    fakeChatId       = 123;

            _subscribeRepositoryMock.Setup(x => x.DeleteSubscriptionAsync(It.IsAny <string>(), It.IsAny <int>()));

            // Act
            var subController = new SubscribesController(
                _subscribeRepositoryMock.Object
                );

            var actionResultEmpty = await subController.DeleteSubscribeAsync(fakeBotNameEmpty, fakeChatId) as BadRequestResult;

            var actionResultNull = await subController.DeleteSubscribeAsync(fakeBotNameNull, fakeChatId) as BadRequestResult;

            // Assert
            Assert.NotNull(actionResultEmpty);
            Assert.NotNull(actionResultNull);
        }