public async void AddAsync(bool isMutant, Stats stat) { string sqlQueryGet = "select count_human_dna , count_mutant_dna from Stats"; mockDapper.Setup(t => t.QuerySingle <Stats>(It.Is <IDbConnection>(db => db.ConnectionString == _mockedConnString), sqlQueryGet)) .ReturnsAsync(stat); string insertQuery = "INSERT INTO Stats (Id, count_human_dna, count_mutant_dna)" + " VALUES ('00000000-0000-0000-0000-000000000000', 0, 0)"; mockDapper.Setup(t => t.ExecuteAsync(It.Is <IDbConnection>(db => db.ConnectionString == _mockedConnString), insertQuery)) .ReturnsAsync(1); var dictionary = new Dictionary <string, object> { { "@humans", isMutant ? 0 : 1 }, { "@mutants", isMutant ? 1 : 0 }, }; string updateQuery = "UPDATE Stats SET count_human_dna = @humans, " + "count_mutant_dna = @mutants WHERE Id = '00000000-0000-0000-0000-000000000000'"; mockDapper.Setup(t => t.ExecuteAsync(It.Is <IDbConnection>(db => db.ConnectionString == _mockedConnString), updateQuery, dictionary)) .ReturnsAsync(1); await _sut.AddStatAsync(isMutant); mockDapper.Verify(t => t.QuerySingle <Stats>(It.IsAny <IDbConnection>(), It.IsAny <string>()), Moq.Times.Exactly(1)); if (stat == null) { mockDapper.Verify(t => t.ExecuteAsync(It.IsAny <IDbConnection>(), It.IsAny <string>()), Moq.Times.Exactly(1)); } mockDapper.Verify(t => t.ExecuteAsync(It.IsAny <IDbConnection>(), It.IsAny <string>(), It.IsAny <Dictionary <string, object> >()), Moq.Times.Exactly(1)); }