Skip to content

Commit 4bf7596

Browse files
authoredAug 17, 2019
feat: add conditional property to disable GraphQLController (#161)
* feat: add `spring.graphql.jpa.query.web.enabled` conditional property * fix: add `spring.graphql.jpa.query.enabled` conditional property
1 parent a3f7877 commit 4bf7596

File tree

3 files changed

+82
-2
lines changed

3 files changed

+82
-2
lines changed
 

‎graphql-jpa-query-web/src/main/java/com/introproventures/graphql/jpa/query/web/autoconfigure/GraphQLControllerAutoConfiguration.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.introproventures.graphql.jpa.query.web.autoconfigure;
22

3-
import com.introproventures.graphql.jpa.query.schema.GraphQLExecutor;
4-
import com.introproventures.graphql.jpa.query.web.GraphQLController;
53
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
65
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
76
import org.springframework.context.annotation.Configuration;
87
import org.springframework.context.annotation.Import;
98

9+
import com.introproventures.graphql.jpa.query.schema.GraphQLExecutor;
10+
import com.introproventures.graphql.jpa.query.web.GraphQLController;
11+
1012
@Configuration
1113
@ConditionalOnWebApplication
1214
@ConditionalOnClass(GraphQLExecutor.class)
15+
@ConditionalOnProperty(prefix = "spring.graphql.jpa.query", name = {"enabled", "web.enabled"}, havingValue="true", matchIfMissing=true)
1316
public class GraphQLControllerAutoConfiguration {
1417

1518
@Import(GraphQLController.class)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.introproventures.graphql.jpa.query.web.autoconfigure;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import org.junit.Test;
6+
import org.junit.runner.RunWith;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.boot.autoconfigure.SpringBootApplication;
9+
import org.springframework.boot.test.context.SpringBootTest;
10+
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
11+
import org.springframework.boot.test.mock.mockito.MockBean;
12+
import org.springframework.test.context.junit4.SpringRunner;
13+
14+
import com.introproventures.graphql.jpa.query.schema.GraphQLExecutor;
15+
import com.introproventures.graphql.jpa.query.web.GraphQLController;
16+
17+
@RunWith(SpringRunner.class)
18+
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT,
19+
properties = "spring.graphql.jpa.query.enabled=false")
20+
public class GraphQLControllerAutoConfigurationPropertyDisabledTest {
21+
22+
@MockBean
23+
private GraphQLExecutor graphQLExecutor;
24+
25+
@Autowired(required=false)
26+
private GraphQLController graphQLController;
27+
28+
@SpringBootApplication
29+
static class Application {
30+
31+
}
32+
33+
@Test
34+
public void contextLoads() {
35+
assertThat(graphQLController).isNull();
36+
}
37+
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.introproventures.graphql.jpa.query.web.autoconfigure;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import org.junit.Test;
6+
import org.junit.runner.RunWith;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.boot.autoconfigure.SpringBootApplication;
9+
import org.springframework.boot.test.context.SpringBootTest;
10+
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
11+
import org.springframework.boot.test.mock.mockito.MockBean;
12+
import org.springframework.test.context.junit4.SpringRunner;
13+
14+
import com.introproventures.graphql.jpa.query.schema.GraphQLExecutor;
15+
import com.introproventures.graphql.jpa.query.web.GraphQLController;
16+
17+
@RunWith(SpringRunner.class)
18+
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT,
19+
properties = {"spring.graphql.jpa.query.enabled=true",
20+
"spring.graphql.jpa.query.web.enabled=false"})
21+
public class GraphQLControllerAutoConfigurationWebPropertyDisabledTest {
22+
23+
@MockBean
24+
private GraphQLExecutor graphQLExecutor;
25+
26+
@Autowired(required=false)
27+
private GraphQLController graphQLController;
28+
29+
@SpringBootApplication
30+
static class Application {
31+
32+
}
33+
34+
@Test
35+
public void contextLoads() {
36+
assertThat(graphQLController).isNull();
37+
}
38+
39+
}

0 commit comments

Comments
 (0)
Please sign in to comment.