Skip to content

Commit 987b72c

Browse files
authored
Merge pull request #81 from vtintillier/gh80
Fix set and remove method signatures
2 parents 1cb1edd + 1cc987d commit 987b72c

File tree

4 files changed

+31
-16
lines changed

4 files changed

+31
-16
lines changed

system-stubs-core/src/main/java/uk/org/webcompere/systemstubs/properties/SystemPropertiesImpl.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* that will be applied to the system to be set before the stubbing is triggered.
1717
*/
1818
public class SystemPropertiesImpl<T extends SystemPropertiesImpl<T>> extends SingularTestResource
19-
implements NameValuePairSetter<SystemPropertiesImpl<T>> {
19+
implements NameValuePairSetter<T> {
2020
private Properties originalProperties;
2121
private Properties properties;
2222

@@ -70,12 +70,13 @@ public SystemPropertiesImpl(String name, String value, String... nameValues) {
7070
* @since 1.0.0
7171
*/
7272
@Override
73-
public SystemPropertiesImpl<T> set(String name, String value) {
73+
@SuppressWarnings("unchecked")
74+
public T set(String name, String value) {
7475
properties.setProperty(name, value);
7576
if (isActive()) {
7677
System.setProperty(name, value);
7778
}
78-
return this;
79+
return (T) this;
7980
}
8081

8182
/**
@@ -86,12 +87,13 @@ public SystemPropertiesImpl<T> set(String name, String value) {
8687
* @since 2.1.5
8788
*/
8889
@Override
89-
public SystemPropertiesImpl<T> remove(String name) {
90+
@SuppressWarnings("unchecked")
91+
public T remove(String name) {
9092
propertiesToRemove.add(name);
9193
if (isActive()) {
9294
System.getProperties().remove(name);
9395
}
94-
return this;
96+
return (T) this;
9597
}
9698

9799
@Override

system-stubs-core/src/test/java/uk/org/webcompere/systemstubs/properties/SystemPropertiesTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ void settingAfterPreDeleteAlsoWorks() throws Exception {
147147
properties.set("bar", "h");
148148
assertThat(System.getProperty("bar")).isEqualTo("h");
149149

150-
SystemProperties nested = new SystemProperties();
151-
nested.remove("bar");
150+
SystemProperties nested = new SystemProperties().remove("bar");
152151
nested.execute(() -> {
153152
nested.set("bar", "bong");
154153
assertThat(System.getProperty("bar")).isEqualTo("bong");

system-stubs-junit4/src/main/java/uk/org/webcompere/systemstubs/rules/SystemPropertiesRule.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import uk.org.webcompere.systemstubs.properties.SystemPropertiesImpl;
44
import uk.org.webcompere.systemstubs.rules.internal.SystemStubTestRule;
55

6-
import java.util.Map;
76
import java.util.Properties;
87

98
/**
@@ -30,12 +29,4 @@ public SystemPropertiesRule(Properties properties) {
3029
public SystemPropertiesRule(String name, String value, String... nameValues) {
3130
super(name, value, nameValues);
3231
}
33-
34-
/**
35-
* {@inheritDoc}
36-
*/
37-
@Override
38-
public SystemPropertiesRule set(Map<Object, Object> properties) {
39-
return (SystemPropertiesRule)super.set(properties);
40-
}
4132
}

system-stubs-jupiter/src/test/java/uk/org/webcompere/systemstubs/jupiter/SystemStubsExtensionTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,29 @@ void method3_hasCleanPropertiesAndEnvironment() {
4343
}
4444
}
4545

46+
@ExtendWith(SystemStubsExtension.class)
47+
@Nested
48+
class SystemPropertiesAsParentClass {
49+
50+
@SystemStub
51+
private SystemProperties systemProperties = new WithDefaultsSystemProperties()
52+
.set("key1", "value3");
53+
54+
@Test
55+
void defaultValuesAreSet() {
56+
assertThat(System.getProperty("key1")).isEqualTo("value3");
57+
assertThat(System.getProperty("key2")).isEqualTo("value2");
58+
}
59+
}
60+
61+
private static class WithDefaultsSystemProperties extends SystemProperties {
62+
63+
WithDefaultsSystemProperties() {
64+
super("key1", "value1");
65+
this.set("key2", "value2");
66+
}
67+
}
68+
4669
@ExtendWith(SystemStubsExtension.class)
4770
@Nested
4871
class FieldWithoutAnnotation {

0 commit comments

Comments
 (0)