示例#1
0
        public async Task Register_ByDefault_ReturnsNoContent()
        {
            var userControllerStub     = CreateUserControllerStub();
            var hostingEnvironmentStub = new Mock <IHostingEnvironment>();
            var pushServiceMock        = new Mock <IPushService>();

            pushServiceMock.Setup(m => m.Register(It.IsAny <PushSubscription>())).Returns(Task.CompletedTask);
            var controller = new PushController(userControllerStub.Object, hostingEnvironmentStub.Object, pushServiceMock.Object);
            var model      = new PushSubscriptionViewModel
            {
                Subscription = new Subscription
                {
                    Endpoint       = "https://db5p.notify.windows.com/w/?token=BQYAAACt1jdFc8Z7mH6fQOhqwzfh...",
                    ExpirationTime = 1551728506000,
                    Keys           = new Keys
                    {
                        Auth   = "_PhChqC4oDiArJ-DpkfNrQ",
                        P256Dh = "BNyBjPuc30Akf7lvT7OtZUimZOgI...",
                    },
                },
            };

            var result = await controller.Register(model);

            Assert.IsType <NoContentResult>(result);
            pushServiceMock.Verify(m => m.Register(It.IsAny <PushSubscription>()), Times.Once());
        }
        public async Task <IActionResult> StoreSubscription(PushSubscriptionViewModel pushSubscriptionViewModel)
        {
            var pushSubscription = _mapper.Map <PushSubscription>(pushSubscriptionViewModel);

            var response = await _pushSubscriptionApp.StoreSubscriptionAsync(pushSubscription);

            if (response > 0)
            {
                return(CreatedAtAction(nameof(StoreSubscription), pushSubscription));
            }

            return(NoContent());
        }