|
1 | 1 | /* |
2 | | - * Copyright 2014-2019 the original author or authors. |
| 2 | + * Copyright 2014-2020 the original author or authors. |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
@@ -43,74 +43,104 @@ public class ParametersModifyingOperationPreprocessorTests { |
43 | 43 | @Test |
44 | 44 | public void addNewParameter() { |
45 | 45 | Parameters parameters = new Parameters(); |
46 | | - assertThat(this.preprocessor.add("a", "alpha").preprocess(createRequest(parameters)).getParameters()) |
47 | | - .containsEntry("a", Arrays.asList("alpha")); |
| 46 | + OperationRequest request = this.preprocessor.add("a", "alpha").preprocess(createGetRequest(parameters)); |
| 47 | + assertThat(request.getParameters()).containsEntry("a", Arrays.asList("alpha")); |
| 48 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080?a=alpha")); |
48 | 49 | } |
49 | 50 |
|
50 | 51 | @Test |
51 | 52 | public void addValueToExistingParameter() { |
52 | 53 | Parameters parameters = new Parameters(); |
53 | 54 | parameters.add("a", "apple"); |
54 | | - assertThat(this.preprocessor.add("a", "alpha").preprocess(createRequest(parameters)).getParameters()) |
55 | | - .containsEntry("a", Arrays.asList("apple", "alpha")); |
| 55 | + OperationRequest request = this.preprocessor.add("a", "alpha").preprocess(createGetRequest(parameters)); |
| 56 | + assertThat(request.getParameters()).containsEntry("a", Arrays.asList("apple", "alpha")); |
| 57 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080?a=apple&a=alpha")); |
56 | 58 | } |
57 | 59 |
|
58 | 60 | @Test |
59 | 61 | public void setNewParameter() { |
60 | 62 | Parameters parameters = new Parameters(); |
61 | | - assertThat(this.preprocessor.set("a", "alpha", "avocado").preprocess(createRequest(parameters)).getParameters()) |
62 | | - .containsEntry("a", Arrays.asList("alpha", "avocado")); |
| 63 | + OperationRequest request = this.preprocessor.set("a", "alpha", "avocado") |
| 64 | + .preprocess(createGetRequest(parameters)); |
| 65 | + assertThat(request.getParameters()).containsEntry("a", Arrays.asList("alpha", "avocado")); |
| 66 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080?a=alpha&a=avocado")); |
63 | 67 | } |
64 | 68 |
|
65 | 69 | @Test |
66 | 70 | public void setExistingParameter() { |
67 | 71 | Parameters parameters = new Parameters(); |
68 | 72 | parameters.add("a", "apple"); |
69 | | - assertThat(this.preprocessor.set("a", "alpha", "avocado").preprocess(createRequest(parameters)).getParameters()) |
70 | | - .containsEntry("a", Arrays.asList("alpha", "avocado")); |
| 73 | + OperationRequest request = this.preprocessor.set("a", "alpha", "avocado") |
| 74 | + .preprocess(createGetRequest(parameters)); |
| 75 | + assertThat(request.getParameters()).containsEntry("a", Arrays.asList("alpha", "avocado")); |
| 76 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080?a=alpha&a=avocado")); |
71 | 77 | } |
72 | 78 |
|
73 | 79 | @Test |
74 | 80 | public void removeNonExistentParameter() { |
75 | 81 | Parameters parameters = new Parameters(); |
76 | | - assertThat(this.preprocessor.remove("a").preprocess(createRequest(parameters)).getParameters().size()) |
77 | | - .isEqualTo(0); |
| 82 | + OperationRequest request = this.preprocessor.remove("a").preprocess(createGetRequest(parameters)); |
| 83 | + assertThat(request.getParameters().size()).isEqualTo(0); |
| 84 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080")); |
78 | 85 | } |
79 | 86 |
|
80 | 87 | @Test |
81 | 88 | public void removeParameter() { |
82 | 89 | Parameters parameters = new Parameters(); |
83 | 90 | parameters.add("a", "apple"); |
84 | | - assertThat(this.preprocessor.set("a", "alpha", "avocado").preprocess(createRequest(parameters)).getParameters()) |
85 | | - .containsEntry("a", Arrays.asList("alpha", "avocado")); |
| 91 | + OperationRequest request = this.preprocessor.remove("a").preprocess(createGetRequest(parameters)); |
| 92 | + assertThat(request.getParameters()).isEmpty(); |
| 93 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080")); |
86 | 94 | } |
87 | 95 |
|
88 | 96 | @Test |
89 | 97 | public void removeParameterValueForNonExistentParameter() { |
90 | 98 | Parameters parameters = new Parameters(); |
91 | | - assertThat(this.preprocessor.remove("a", "apple").preprocess(createRequest(parameters)).getParameters().size()) |
92 | | - .isEqualTo(0); |
| 99 | + OperationRequest request = this.preprocessor.remove("a", "apple").preprocess(createGetRequest(parameters)); |
| 100 | + assertThat(request.getParameters()).isEmpty(); |
| 101 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080")); |
93 | 102 | } |
94 | 103 |
|
95 | 104 | @Test |
96 | 105 | public void removeParameterValueWithMultipleValues() { |
97 | 106 | Parameters parameters = new Parameters(); |
98 | 107 | parameters.add("a", "apple"); |
99 | 108 | parameters.add("a", "alpha"); |
100 | | - assertThat(this.preprocessor.remove("a", "apple").preprocess(createRequest(parameters)).getParameters()) |
101 | | - .containsEntry("a", Arrays.asList("alpha")); |
| 109 | + parameters.add("b", "bravo"); |
| 110 | + OperationRequest request = this.preprocessor.remove("a", "apple").preprocess(createGetRequest(parameters)); |
| 111 | + assertThat(request.getParameters()).containsEntry("a", Arrays.asList("alpha")); |
| 112 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080?a=alpha&b=bravo")); |
102 | 113 | } |
103 | 114 |
|
104 | 115 | @Test |
105 | 116 | public void removeParameterValueWithSingleValueRemovesEntryEntirely() { |
106 | 117 | Parameters parameters = new Parameters(); |
107 | 118 | parameters.add("a", "apple"); |
108 | | - assertThat(this.preprocessor.remove("a", "apple").preprocess(createRequest(parameters)).getParameters().size()) |
109 | | - .isEqualTo(0); |
| 119 | + parameters.add("b", "bravo"); |
| 120 | + OperationRequest request = this.preprocessor.remove("a", "apple").preprocess(createGetRequest(parameters)); |
| 121 | + assertThat(request.getParameters()).doesNotContainKey("a"); |
| 122 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080?b=bravo")); |
110 | 123 | } |
111 | 124 |
|
112 | | - private OperationRequest createRequest(Parameters parameters) { |
113 | | - return new OperationRequestFactory().create(URI.create("http://localhost:8080"), HttpMethod.GET, new byte[0], |
| 125 | + @Test |
| 126 | + public void whenParametersOfANonGetRequestAreModifiedThenTheQueryStringIsUnaffected() { |
| 127 | + Parameters parameters = new Parameters(); |
| 128 | + parameters.add("a", "apple"); |
| 129 | + parameters.add("b", "bravo"); |
| 130 | + OperationRequest request = this.preprocessor.remove("a", "apple").preprocess(createPostRequest(parameters)); |
| 131 | + assertThat(request.getParameters()).doesNotContainKey("a"); |
| 132 | + assertThat(request.getUri()).isEqualTo(URI.create("http://localhost:8080")); |
| 133 | + } |
| 134 | + |
| 135 | + private OperationRequest createGetRequest(Parameters parameters) { |
| 136 | + return new OperationRequestFactory().create( |
| 137 | + URI.create("http://localhost:8080" + (parameters.isEmpty() ? "" : "?" + parameters.toQueryString())), |
| 138 | + HttpMethod.GET, new byte[0], new HttpHeaders(), parameters, |
| 139 | + Collections.<OperationRequestPart>emptyList()); |
| 140 | + } |
| 141 | + |
| 142 | + private OperationRequest createPostRequest(Parameters parameters) { |
| 143 | + return new OperationRequestFactory().create(URI.create("http://localhost:8080"), HttpMethod.POST, new byte[0], |
114 | 144 | new HttpHeaders(), parameters, Collections.<OperationRequestPart>emptyList()); |
115 | 145 | } |
116 | 146 |
|
|
0 commit comments