Beispiel #1
0
        public async Task <string> Get()
        {
            var query  = HelloQuery.Create(User.GetUserId());
            var result = await _mediator.Send(query);

            return(result);
        }
        public async Task Notification_given___Clients_called()
        {
            var hubContextMock     = new Mock <IHubContext <GreetingHub, IGreetingClient> >(MockBehavior.Strict);
            var hubClientsMock     = new Mock <IHubClients <IGreetingClient> >(MockBehavior.Strict);
            var greetingClientMock = new Mock <IGreetingClient>(MockBehavior.Strict);

            const string name            = "Dummy";
            string       expectedMessage = $"Hello '{name}' from SignalR";

            hubContextMock
            .Setup(h => h.Clients)
            .Returns(hubClientsMock.Object)
            .Verifiable();

            hubClientsMock
            .Setup(h => h.All)
            .Returns(greetingClientMock.Object)
            .Verifiable();

            greetingClientMock
            .Setup(g => g.NewGreeting(name, expectedMessage))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var notification = new HelloQuery(name);
            var sut          = new HelloNotificationHandler(hubContextMock.Object);

            await sut.Handle(notification);

            hubContextMock.Verify();
            hubClientsMock.Verify();
            greetingClientMock.Verify();
        }
        public void Ctor_name_is_not_null___property_set()
        {
            string name = Guid.NewGuid().ToString();

            var sut = new HelloQuery(name);

            Assert.AreEqual(name, sut.Name);
        }
        public void Run_QueryIsNull_ThrowsArgumentNullException()
        {
            // Arrange
            IQueryRunner queryRunner = new QueryRunner(_queryHandlerFactoryMock.Object);
            HelloQuery   query       = null;

            // Act && Assert
            var ex = Assert.Throws <ArgumentNullException>(() => queryRunner.Run(query));

            Assert.That(ex.ParamName, Is.EqualTo("query"));
        }
        public void Run_ValidState_RunsOk()
        {
            // Arrange
            IQueryRunner queryRunner = new QueryRunner(_queryHandlerFactoryMock.Object);
            var          query       = new HelloQuery {
                Name = "Maria",
            };

            // Act
            queryRunner.Run(query);

            // Assert
            Assert.That(query.GetResult().Greeting, Is.EqualTo("Hello, Maria!"));
        }
        public async Task Query_given___correct_response()
        {
            var envMock = new Mock <IWebHostEnvironment>();
            var query   = new HelloQuery("Dummy");
            var sut     = new HelloQueryHandler(envMock.Object);

            envMock
            .Setup(e => e.ApplicationName)
            .Returns("Test")
            .Verifiable();

            HelloResponse response = await sut.Handle(query);

            envMock.Verify();
            Assert.AreEqual("Hello 'Dummy' from Test", response.Message);
        }
        public void Run_QueryHandlerFactoryFailsToCreateQueryHandler_ThrowsCannotCreateQueryHandlerException()
        {
            // Arrange
            _queryHandlerFactoryMock
            .Setup(x => x.Create <HelloQuery>())
            .Returns((HelloQueryHandler)null);
            IQueryRunner queryRunner = new QueryRunner(_queryHandlerFactoryMock.Object);
            var          query       = new HelloQuery()
            {
                Name = "Maria",
            };

            // Act
            var ex = Assert.Throws <CannotCreateQueryHandlerException>(() => queryRunner.Run(query));

            Assert.That(ex.Message, Is.EqualTo("Attempt to create the query handler failed."));
            var innerEx = ex.InnerException;

            Assert.That(innerEx, Is.Null);
        }
        public void Run_QueryHandlerFactoryThrowsExceptionOnCreation_ThrowsCannotNotCreateQueryHandlerException()
        {
            // Arrange
            _queryHandlerFactoryMock
            .Setup(x => x.Create <HelloQuery>())
            .Callback(() => throw new InvalidOperationException("internal error"));
            IQueryRunner queryRunner = new QueryRunner(_queryHandlerFactoryMock.Object);
            var          query       = new HelloQuery()
            {
                Name = "Maria",
            };

            // Act
            var ex = Assert.Throws <CannotCreateQueryHandlerException>(() => queryRunner.Run(query));

            Assert.That(ex.Message, Is.EqualTo("Attempt to create the query handler failed."));
            var innerEx = ex.InnerException;

            Assert.That(innerEx, Is.Not.Null);
            Assert.That(innerEx, Is.InstanceOf <InvalidOperationException>());
            Assert.That(innerEx.Message, Is.EqualTo("internal error"));
        }