Compare commits
1 Commits
master
...
feature-fl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c347841a3c |
@@ -12,11 +12,11 @@ class Service {
|
|||||||
this.featureFlagService = featureFlagService;
|
this.featureFlagService = featureFlagService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
if (featureFlagService.isNewServiceEnabled()) {
|
if (featureFlagService.isNewServiceEnabled()) {
|
||||||
return 42;
|
return "new value";
|
||||||
} else {
|
} else {
|
||||||
return 1;
|
return "old value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package io.reflectoring.featureflags.patterns.replacebean;
|
|||||||
|
|
||||||
class NewService implements Service {
|
class NewService implements Service {
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
return 42;
|
return "new value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package io.reflectoring.featureflags.patterns.replacebean;
|
|||||||
|
|
||||||
class OldService implements Service {
|
class OldService implements Service {
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
return 1;
|
return "old value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package io.reflectoring.featureflags.patterns.replacebean;
|
|||||||
|
|
||||||
interface Service {
|
interface Service {
|
||||||
|
|
||||||
int doSomething();
|
String doSomething();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class FeatureFlaggedService implements Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
if (featureFlagService.isNewServiceEnabled()) {
|
if (featureFlagService.isNewServiceEnabled()) {
|
||||||
return newService.doSomething();
|
return newService.doSomething();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import org.springframework.stereotype.Component;
|
|||||||
@Component
|
@Component
|
||||||
class NewService implements Service {
|
class NewService implements Service {
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
return 42;
|
return "new value";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import org.springframework.stereotype.Component;
|
|||||||
@Component
|
@Component
|
||||||
class OldService implements Service {
|
class OldService implements Service {
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
return 1;
|
return "old value";
|
||||||
}
|
}
|
||||||
|
|
||||||
public int doSomethingElse(){
|
public int doSomethingElse(){
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package io.reflectoring.featureflags.patterns.replacemethod;
|
|||||||
|
|
||||||
interface Service {
|
interface Service {
|
||||||
|
|
||||||
int doSomething();
|
String doSomething();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package io.reflectoring.featureflags.patterns.replacemodule;
|
|||||||
|
|
||||||
public interface Service1 {
|
public interface Service1 {
|
||||||
|
|
||||||
int doSomething();
|
String doSomething();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package io.reflectoring.featureflags.patterns.replacemodule;
|
|||||||
|
|
||||||
public interface Service2 {
|
public interface Service2 {
|
||||||
|
|
||||||
int doSomethingElse();
|
String doSomethingElse();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import org.springframework.stereotype.Component;
|
|||||||
@Component
|
@Component
|
||||||
public class NewService1 implements Service1 {
|
public class NewService1 implements Service1 {
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
return 42;
|
return "new value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
|
|||||||
public class NewService2 implements Service2 {
|
public class NewService2 implements Service2 {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int doSomethingElse() {
|
public String doSomethingElse() {
|
||||||
return 42;
|
return "another nwe value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import org.springframework.stereotype.Component;
|
|||||||
@Component
|
@Component
|
||||||
public class OldService1 implements Service1 {
|
public class OldService1 implements Service1 {
|
||||||
@Override
|
@Override
|
||||||
public int doSomething() {
|
public String doSomething() {
|
||||||
return 1;
|
return "old value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
|
|||||||
public class OldService2 implements Service2 {
|
public class OldService2 implements Service2 {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int doSomethingElse() {
|
public String doSomethingElse() {
|
||||||
return 1;
|
return "another old value";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ public class ReplaceBeanTest {
|
|||||||
@Test
|
@Test
|
||||||
void oldServiceTest() {
|
void oldServiceTest() {
|
||||||
given(featureFlagService.isNewServiceEnabled()).willReturn(false);
|
given(featureFlagService.isNewServiceEnabled()).willReturn(false);
|
||||||
assertThat(service.doSomething()).isEqualTo(1);
|
assertThat(service.doSomething()).isEqualTo("old value");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void newServiceTest() {
|
void newServiceTest() {
|
||||||
given(featureFlagService.isNewServiceEnabled()).willReturn(true);
|
given(featureFlagService.isNewServiceEnabled()).willReturn(true);
|
||||||
assertThat(service.doSomething()).isEqualTo(42);
|
assertThat(service.doSomething()).isEqualTo("new value");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,14 +31,14 @@ public class ReplaceMethodTest {
|
|||||||
@Test
|
@Test
|
||||||
void oldServiceTest() {
|
void oldServiceTest() {
|
||||||
given(featureFlagService.isNewServiceEnabled()).willReturn(false);
|
given(featureFlagService.isNewServiceEnabled()).willReturn(false);
|
||||||
assertThat(service.doSomething()).isEqualTo(1);
|
assertThat(service.doSomething()).isEqualTo("old value");
|
||||||
assertThat(oldService.doSomethingElse()).isEqualTo(2);
|
assertThat(oldService.doSomethingElse()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void newServiceTest() {
|
void newServiceTest() {
|
||||||
given(featureFlagService.isNewServiceEnabled()).willReturn(true);
|
given(featureFlagService.isNewServiceEnabled()).willReturn(true);
|
||||||
assertThat(service.doSomething()).isEqualTo(42);
|
assertThat(service.doSomething()).isEqualTo("new value");
|
||||||
// doSomethingElse() is not behind a feature flag, so it should return the same value independant of the feature flag
|
// doSomethingElse() is not behind a feature flag, so it should return the same value independant of the feature flag
|
||||||
assertThat(oldService.doSomethingElse()).isEqualTo(2);
|
assertThat(oldService.doSomethingElse()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user