Skip to content

Commit bccf848

Browse files
committed
CWMSVUE-634 - Updated locationId to be a CwmsId, updated DTO match to include TimeSeriesIdentifierDescriptor
1 parent 1d4ecf3 commit bccf848

File tree

4 files changed

+23
-37
lines changed

4 files changed

+23
-37
lines changed

cwms-data-api/src/main/java/cwms/cda/data/dto/AccessToWaterTimeSeriesIdentifier.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,21 @@
3636
@JsonDeserialize(builder = AccessToWaterTimeSeriesIdentifier.Builder.class)
3737
@JsonInclude(JsonInclude.Include.NON_NULL)
3838
@JsonNaming(PropertyNamingStrategies.KebabCaseStrategy.class)
39-
public final class AccessToWaterTimeSeriesIdentifier extends CwmsDTO {
39+
public final class AccessToWaterTimeSeriesIdentifier extends CwmsDTOBase {
4040
@JsonProperty(required = true)
41-
private final String locationId;
41+
private final CwmsId locationId;
4242
@JsonProperty(required = true)
4343
private final TimeSeriesIdentifierDescriptor timeSeriesIdDescriptor;
4444
@JsonProperty(required = true)
4545
private final String tsType;
4646

4747
private AccessToWaterTimeSeriesIdentifier(Builder builder) {
48-
super(builder.officeId);
4948
this.locationId = builder.locationId;
5049
this.timeSeriesIdDescriptor = builder.timeSeriesIdDescriptor;
5150
this.tsType = builder.tsType;
5251
}
5352

54-
public String getLocationId() {
53+
public CwmsId getLocationId() {
5554
return locationId;
5655
}
5756

@@ -64,12 +63,11 @@ public String getTsType() {
6463
}
6564

6665
public static class Builder {
67-
private String locationId;
66+
private CwmsId locationId;
6867
private TimeSeriesIdentifierDescriptor timeSeriesIdDescriptor;
6968
private String tsType;
70-
private String officeId;
7169

72-
public Builder withLocationId(String locationId) {
70+
public Builder withLocationId(CwmsId locationId) {
7371
this.locationId = locationId;
7472
return this;
7573
}
@@ -84,11 +82,6 @@ public Builder withTsType(String tsType) {
8482
return this;
8583
}
8684

87-
public Builder withOfficeId(String officeId) {
88-
this.officeId = officeId;
89-
return this;
90-
}
91-
9285
public AccessToWaterTimeSeriesIdentifier build() {
9386
return new AccessToWaterTimeSeriesIdentifier(this);
9487
}

cwms-data-api/src/test/java/cwms/cda/data/dto/AccessToWaterTimeSeriesIdentifierTest.java

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,13 @@ void createAccessToWaterTimeSeriesData_allFieldsProvided_success() {
4848
.withZoneId(ZoneId.of("UTC"))
4949
.build();
5050
AccessToWaterTimeSeriesIdentifier item = new AccessToWaterTimeSeriesIdentifier.Builder()
51-
.withOfficeId("SWT")
52-
.withLocationId("VANL")
51+
.withLocationId(CwmsId.buildCwmsId("SWT", "VANL"))
5352
.withTimeSeriesIdDescriptor(tsDescriptor)
5453
.withTsType("STAGE")
5554
.build();
5655

5756
assertAll(
58-
() -> assertEquals("VANL", item.getLocationId(), "The location ID does not match the provided value"),
57+
() -> DTOMatch.assertMatch(CwmsId.buildCwmsId("SWT", "VANL"), item.getLocationId(), "The location ID does not match the provided value"),
5958
() -> DTOMatch.assertMatch(tsDescriptor, item.getTimeSeriesIdDescriptor()),
6059
() -> assertEquals("STAGE", item.getTsType(), "The time series type does not match the provided value")
6160
);
@@ -73,7 +72,6 @@ void createAccessToWaterTimeSeriesData_missingField_throwsFieldException() {
7372
assertAll(
7473
() -> assertThrows(FieldException.class, () -> {
7574
AccessToWaterTimeSeriesIdentifier item = new AccessToWaterTimeSeriesIdentifier.Builder()
76-
.withOfficeId("SWT")
7775
.withTimeSeriesIdDescriptor(tsDescriptor)
7876
.withTsType("STAGE")
7977
.build();
@@ -82,30 +80,19 @@ void createAccessToWaterTimeSeriesData_missingField_throwsFieldException() {
8280

8381
() -> assertThrows(FieldException.class, () -> {
8482
AccessToWaterTimeSeriesIdentifier item = new AccessToWaterTimeSeriesIdentifier.Builder()
85-
.withOfficeId("SWT")
86-
.withLocationId("VANL")
83+
.withLocationId(CwmsId.buildCwmsId("SWT", "VANL"))
8784
.withTsType("STAGE")
8885
.build();
8986
item.validate();
9087
}, "The validate method should have thrown a FieldException because the TimeSeries ID is missing"),
9188

9289
() -> assertThrows(FieldException.class, () -> {
9390
AccessToWaterTimeSeriesIdentifier item = new AccessToWaterTimeSeriesIdentifier.Builder()
94-
.withOfficeId("SWT")
95-
.withLocationId("VANL")
96-
.withTimeSeriesIdDescriptor(tsDescriptor)
97-
.build();
98-
item.validate();
99-
}, "The validate method should have thrown a FieldException because the time series type is missing"),
100-
101-
() -> assertThrows(FieldException.class, () -> {
102-
AccessToWaterTimeSeriesIdentifier item = new AccessToWaterTimeSeriesIdentifier.Builder()
103-
.withLocationId("VANL")
91+
.withLocationId(CwmsId.buildCwmsId("SWT", "VANL"))
10492
.withTimeSeriesIdDescriptor(tsDescriptor)
105-
.withTsType("STAGE")
10693
.build();
10794
item.validate();
108-
}, "The validate method should have thrown a FieldException because the office id is missing")
95+
}, "The validate method should have thrown a FieldException because the time series type is missing")
10996
);
11097
}
11198

@@ -119,8 +106,7 @@ void createAccessToWaterTimeSeriesData_serialize_roundtrip() {
119106
.withZoneId(ZoneId.of("UTC"))
120107
.build();
121108
AccessToWaterTimeSeriesIdentifier data = new AccessToWaterTimeSeriesIdentifier.Builder()
122-
.withOfficeId("SWT")
123-
.withLocationId("VANL")
109+
.withLocationId(CwmsId.buildCwmsId("SWT", "VANL"))
124110
.withTimeSeriesIdDescriptor(tsDescriptor)
125111
.withTsType("STAGE")
126112
.build();
@@ -141,8 +127,7 @@ void createAccessToWaterTimeSeriesData_deserialize() throws Exception {
141127
.withZoneId(ZoneId.of("UTC"))
142128
.build();
143129
AccessToWaterTimeSeriesIdentifier expected = new AccessToWaterTimeSeriesIdentifier.Builder()
144-
.withOfficeId("SWT")
145-
.withLocationId("VANL")
130+
.withLocationId(CwmsId.buildCwmsId("SWT", "VANL"))
146131
.withTimeSeriesIdDescriptor(tsDescriptor)
147132
.withTsType("STAGE")
148133
.build();

cwms-data-api/src/test/java/cwms/cda/helpers/DTOMatch.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,11 +607,17 @@ public static void assertMatch(AccessToWaterTimeSeriesIdentifier first, AccessTo
607607
assertAll(
608608
() -> assertMatch(first.getTimeSeriesIdDescriptor(), second.getTimeSeriesIdDescriptor()),
609609
() -> assertEquals(first.getTsType(), second.getTsType()),
610-
() -> assertEquals(first.getLocationId(), second.getLocationId())
610+
() -> assertMatch(first.getLocationId(), second.getLocationId())
611611
);
612612
}
613613

614614
public static void assertMatch(TimeSeriesIdentifierDescriptor tsDescriptor, TimeSeriesIdentifierDescriptor timeSeriesIdDescriptor) {
615+
assertAll(
616+
() -> assertEquals(tsDescriptor.getIntervalOffsetMinutes(), timeSeriesIdDescriptor.getIntervalOffsetMinutes(), "Identifier does not match"),
617+
() -> assertEquals(tsDescriptor.getTimeSeriesId(), timeSeriesIdDescriptor.getTimeSeriesId(), "Part does not match"),
618+
() -> assertEquals(tsDescriptor.getOfficeId(), timeSeriesIdDescriptor.getOfficeId(), "Time series type does not match"),
619+
() -> assertEquals(tsDescriptor.getTimezoneName(), timeSeriesIdDescriptor.getTimezoneName(), "Office ID does not match")
620+
);
615621
}
616622

617623
@FunctionalInterface

cwms-data-api/src/test/resources/cwms/cda/data/dto/access_to_water_time_series_data.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
2-
"office-id":"SWT",
3-
"location-id": "VANL",
2+
"location-id": {
3+
"name": "VANL",
4+
"office-id":"SWT"
5+
},
46
"time-series-id-descriptor": {
57
"office-id": "SWT",
68
"time-series-id": "VANL.Stage.Inst.15Minutes.0.Ccp-Rev",

0 commit comments

Comments
 (0)