public void SetUp() { _gameId = Guid.NewGuid(); var gameView = new GameView() { Name = "Test Game", Id = _gameId, }; _exchangeName = "test-exchange"; _connection = Mock.Of <IConnection>(); var model = Mock.Of <IModel>(); var gameSqlQueryService = Mock.Of <IQuery <GameView> >(); _gameViewQueryMock = Mock.Get(gameSqlQueryService); _gameViewQueryMock.Setup(s => s.Get(It.IsAny <Guid>(), 1, 1)).Returns(() => Task.FromResult(gameView)); _connectionMock = Mock.Get(_connection); _modelMock = Mock.Get(model); _connectionMock.Setup(c => c.CreateModel()).Returns(model); _modelMock.Setup(m => m.CreateBasicProperties()).Returns(Mock.Of <IBasicProperties>()); var logger = Mock.Of <ILogger <RabbitScorePublisherService> >(); _publisher = new RabbitScorePublisherService(_connection, _exchangeName, gameSqlQueryService, logger); }
public void Publish_GivenScoreViewWhereGameDoesntExist_ThrowsInvalidOperationException() { var gameSqlQueryService = Mock.Of <IQuery <GameView> >(); var gameSqlQueryServiceMock = Mock.Get(gameSqlQueryService); gameSqlQueryServiceMock.Setup(s => s.Get(It.IsAny <Guid>(), 1, 1)).Returns(() => Task.FromResult((GameView)null)); var logger = Mock.Of <ILogger <RabbitScorePublisherService> >(); var publisher = new RabbitScorePublisherService(_connection, "exchange", gameSqlQueryService, logger); var gameId = Guid.NewGuid(); Assert.That(async() => await publisher.Publish(new ScoreView() { Id = Guid.NewGuid(), GameId = gameId, Name = "Test User", Score = 0, PostedAt = DateTime.UtcNow, }), Throws.InvalidOperationException.With.Message.EqualTo($"Game with id {gameId} not found")); }