Skip to content

Commit 44292b7

Browse files
committed
fix a bug which stores readings in wrong unit
reading = json_value * 10000
1 parent a0bfdb7 commit 44292b7

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

rest/controller/MeterReadingController.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@ class MeterReadingController {
6565
return {http::status::internal_server_error, 11};
6666
}
6767
for (auto &electricityReading : body["electricityReadings"]) {
68-
electricityReadings.emplace_back(detail::fromRfc3339(electricityReading["time"]), electricityReading["reading"]);
68+
auto time = detail::fromRfc3339(electricityReading["time"]);
69+
auto reading = static_cast<std::size_t>(
70+
electricityReading["reading"].get<double>() * 10000
71+
);
72+
electricityReadings.emplace_back(time, reading);
6973
}
7074
meterReadingService_.storeReadings(smartMeterId, electricityReadings);
7175
return {};

test/controller/MeterReadingControllerTest.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ TEST_F(MeterReadingControllerTest, StoreShouldStoreGivenMultipleBatchesOfMeterRe
6565
"electricityReadings": [
6666
{
6767
"time": "2021-08-18T06:42:15.725202Z",
68-
"reading": 1
68+
"reading": 0.001
6969
}
7070
]
7171
})"_json;
@@ -74,7 +74,7 @@ TEST_F(MeterReadingControllerTest, StoreShouldStoreGivenMultipleBatchesOfMeterRe
7474
"electricityReadings": [
7575
{
7676
"time": "2021-08-18T06:44:15.725202Z",
77-
"reading": 2
77+
"reading": 0.002
7878
}
7979
]
8080
})"_json;
@@ -86,8 +86,8 @@ TEST_F(MeterReadingControllerTest, StoreShouldStoreGivenMultipleBatchesOfMeterRe
8686
controller_.Store(req2, queries);
8787

8888
std::vector<ElectricityReading> expectedElectricityReadings = {
89-
{detail::fromRfc3339("2021-08-18T06:42:15.725202Z"), 1},
90-
{detail::fromRfc3339("2021-08-18T06:44:15.725202Z"), 2}
89+
{detail::fromRfc3339("2021-08-18T06:42:15.725202Z"), 10},
90+
{detail::fromRfc3339("2021-08-18T06:44:15.725202Z"), 20}
9191
};
9292

9393
EXPECT_THAT(meterReadingService_.getReadings("smart-meter-0"), Eq(expectedElectricityReadings));
@@ -99,7 +99,7 @@ TEST_F(MeterReadingControllerTest, StoreShouldStoreAssociatedWithUserGivenMeterR
9999
"electricityReadings": [
100100
{
101101
"time": "2021-08-18T06:42:15.725202Z",
102-
"reading": 1
102+
"reading": 0.001
103103
}
104104
]
105105
})"_json;
@@ -108,7 +108,7 @@ TEST_F(MeterReadingControllerTest, StoreShouldStoreAssociatedWithUserGivenMeterR
108108
"electricityReadings": [
109109
{
110110
"time": "2021-08-18T06:44:15.725202Z",
111-
"reading": 2
111+
"reading": 0.002
112112
}
113113
]
114114
})"_json;
@@ -120,7 +120,7 @@ TEST_F(MeterReadingControllerTest, StoreShouldStoreAssociatedWithUserGivenMeterR
120120
controller_.Store(req2, queries);
121121

122122
std::vector<ElectricityReading> expectedElectricityReadings = {
123-
{detail::fromRfc3339("2021-08-18T06:42:15.725202Z"), 1},
123+
{detail::fromRfc3339("2021-08-18T06:42:15.725202Z"), 10},
124124
};
125125

126126
EXPECT_THAT(meterReadingService_.getReadings("smart-meter-0"), Eq(expectedElectricityReadings));

0 commit comments

Comments
 (0)