public async Task Handler_should_return_created_sensor_dto_with_provided_params() { //Arrange var apiKey = CryptoHelper.GenerateApiKey(); _dataContextMock.Setup(x => x.StaticSensors).ReturnsDbSet(new List <StaticSensor>()); _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object); _mapperMock.Setup(x => x.Map <StaticSensor, StaticSensorDTO>(It.IsAny <StaticSensor>())).Returns( (StaticSensor v) => new StaticSensorDTO { ApiKey = v.ApiKey, Latitude = v.Latitude, Longitude = v.Longitude }); var cancellationToken = new CancellationToken(); var command = new CreateStaticSensorCommand(apiKey, 53, 53); var handler = new CreateStaticSensorCommandHandler(_dataContextFactoryMock.Object, _mapperMock.Object); //Act var result = await handler.Handle(command, cancellationToken); //Assert Assert.Equal(apiKey, result.ApiKey); Assert.Equal(command.Latitude, result.Latitude); Assert.Equal(command.Longitude, result.Longitude); }
public async Task Handler_should_throw_exception_if_dependency_is_null(int paramsSetIndex) { //Arrage var testArgs = new[] { new[] { _dataContextFactoryMock.Object, (object)null }, new[] { (object)null, _mapperMock.Object }, }; var testArgsCurrentSet = testArgs[paramsSetIndex]; //Act void Act() { var handler = new CreateStaticSensorCommandHandler( (IDataContextFactory <DataContext>)testArgsCurrentSet[0], (IMapper)testArgsCurrentSet[1]); } //Assert Assert.Throws <ArgumentNullException>(Act); }
public async Task Handler_should_update_database_with_sensor_with_provided_params() { //Arrange var apiKey = CryptoHelper.GenerateApiKey(); _dataContextMock.Setup(x => x.StaticSensors).ReturnsDbSet(new List <StaticSensor>()); _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object); var cancellationToken = new CancellationToken(); var command = new CreateStaticSensorCommand(apiKey, 53, 53); var handler = new CreateStaticSensorCommandHandler(_dataContextFactoryMock.Object, _mapperMock.Object); //Act await handler.Handle(command, cancellationToken); //Assert //Multiple assert because test is the same for both verified methods and they are very closely related _dataContextMock.Verify(x => x.StaticSensors.AddAsync(It.Is <StaticSensor>(it => it.ApiKey == apiKey && it.Latitude == command.Latitude && it.Longitude == command.Longitude), It.Is <CancellationToken>(it => it == cancellationToken)), Times.Once); _dataContextMock.Verify(x => x.SaveChangesAsync( It.Is <CancellationToken>(it => it == cancellationToken)), Times.Once); }