HttpStatus.java

1
package fr.sii.ogham.sms.util.http;
2
3
/**
4
 * Enum that contains all HTTP status.
5
 * 
6
 * @author Aurélien Baudet
7
 *
8
 */
9
public enum HttpStatus {
10
	// --- 1xx Informational ---
11
12
	/** <strong>100 Continue</strong> (HTTP/1.1 - RFC 2616) */
13
	CONTINUE(100, "Continue"),
14
	/** <strong>101 Switching Protocols</strong> (HTTP/1.1 - RFC 2616) */
15
	SWITCHING_PROTOCOLS(101, "Switching Protocols"),
16
	/** <strong>102 Processing</strong> (WebDAV - RFC 2518) */
17
	PROCESSING(102, "Processing"),
18
19
	// --- 2xx Success ---
20
21
	/** <strong>200 OK</strong> (HTTP/1.0 - RFC 1945) */
22
	OK(200, "OK"),
23
	/** <strong>201 Created</strong> (HTTP/1.0 - RFC 1945) */
24
	CREATED(201, "Created"),
25
	/** <strong>202 Accepted</strong> (HTTP/1.0 - RFC 1945) */
26
	ACCEPTED(202, "Accepted"),
27
	/** <strong>203 Non Authoritative Information</strong> (HTTP/1.1 - RFC 2616) */
28
	NON_AUTHORITATIVE_INFORMATION(203, "Non Authoritative Information"),
29
	/** <strong>204 No Content</strong> (HTTP/1.0 - RFC 1945) */
30
	NO_CONTENT(204, "No Content"),
31
	/** <strong>205 Reset Content</strong> (HTTP/1.1 - RFC 2616) */
32
	RESET_CONTENT(205, "Reset Content"),
33
	/** <strong>206 Partial Content</strong> (HTTP/1.1 - RFC 2616) */
34
	PARTIAL_CONTENT(206, "Partial Content"),
35
	/**
36
	 * <strong>207 Multi-Status</strong> (WebDAV - RFC 2518) or <strong>207 Partial Update
37
	 * OK</strong> (HTTP/1.1 - draft-ietf-http-v11-spec-rev-01?)
38
	 */
39
	MULTI_STATUS(207, "Multi-Status"),
40
	/**
41
	 * <strong>207 Multi-Status</strong> (WebDAV - RFC 2518) or <strong>207 Partial Update
42
	 * OK</strong> (HTTP/1.1 - draft-ietf-http-v11-spec-rev-01?)
43
	 */
44
	PARTIAL_UPDATE_OK(207, "Partial Update OK"),
45
46
	// --- 3xx Redirection ---
47
48
	/** <strong>300 Mutliple Choices</strong> (HTTP/1.1 - RFC 2616) */
49
	MULTIPLE_CHOICES(300, "Mutliple Choices"),
50
	/** <strong>301 Moved Permanently</strong> (HTTP/1.0 - RFC 1945) */
51
	MOVED_PERMANENTLY(301, "Moved Permanently"),
52
	/**
53
	 * <strong>302 Moved Temporarily</strong> (Sometimes <strong>Found</strong>) (HTTP/1.0 - RFC
54
	 * 1945)
55
	 */
56
	MOVED_TEMPORARILY(302, "Moved Temporarily"),
57
	/** <strong>303 See Other</strong> (HTTP/1.1 - RFC 2616) */
58
	SEE_OTHER(303, "See Other"),
59
	/** <strong>304 Not Modified</strong> (HTTP/1.0 - RFC 1945) */
60
	NOT_MODIFIED(304, "Not Modified"),
61
	/** <strong>305 Use Proxy</strong> (HTTP/1.1 - RFC 2616) */
62
	USE_PROXY(305, "Use Proxy"),
63
	/** <strong>307 Temporary Redirect</strong> (HTTP/1.1 - RFC 2616) */
64
	TEMPORARY_REDIRECT(307, "Temporary Redirect"),
65
66
	// --- 4xx Client Error ---
67
68
	/** <strong>400 Bad Request</strong> (HTTP/1.1 - RFC 2616) */
69
	BAD_REQUEST(400, "Bad Request"),
70
	/** <strong>401 Unauthorized</strong> (HTTP/1.0 - RFC 1945) */
71
	UNAUTHORIZED(401, "Unauthorized"),
72
	/** <strong>402 Payment Required</strong> (HTTP/1.1 - RFC 2616) */
73
	PAYMENT_REQUIRED(402, "Payment Required"),
74
	/** <strong>403 Forbidden</strong> (HTTP/1.0 - RFC 1945) */
75
	FORBIDDEN(403, "Forbidden"),
76
	/** <strong>404 Not Found</strong> (HTTP/1.0 - RFC 1945) */
77
	NOT_FOUND(404, "Not Found"),
78
	/** <strong>405 Method Not Allowed</strong> (HTTP/1.1 - RFC 2616) */
79
	METHOD_NOT_ALLOWED(405, "Method Not Allowed"),
80
	/** <strong>406 Not Acceptable</strong> (HTTP/1.1 - RFC 2616) */
81
	NOT_ACCEPTABLE(406, "Not Acceptable"),
82
	/** <strong>407 Proxy Authentication Required</strong> (HTTP/1.1 - RFC 2616) */
83
	PROXY_AUTHENTICATION_REQUIRED(407, "Proxy Authentication Required"),
84
	/** <strong>408 Request Timeout</strong> (HTTP/1.1 - RFC 2616) */
85
	REQUEST_TIMEOUT(408, "Request Timeout"),
86
	/** <strong>409 Conflict</strong> (HTTP/1.1 - RFC 2616) */
87
	CONFLICT(409, "Conflict"),
88
	/** <strong>410 Gone</strong> (HTTP/1.1 - RFC 2616) */
89
	GONE(410, "Gone"),
90
	/** <strong>411 Length Required</strong> (HTTP/1.1 - RFC 2616) */
91
	LENGTH_REQUIRED(411, "Length Required"),
92
	/** <strong>412 Precondition Failed</strong> (HTTP/1.1 - RFC 2616) */
93
	PRECONDITION_FAILED(412, "Precondition Failed"),
94
	/** <strong>413 Request Entity Too Large</strong> (HTTP/1.1 - RFC 2616) */
95
	REQUEST_TOO_LONG(413, "Request Entity Too Large"),
96
	/** <strong>414 Request-URI Too Long</strong> (HTTP/1.1 - RFC 2616) */
97
	REQUEST_URI_TOO_LONG(414, "Request-URI Too Long"),
98
	/** <strong>415 Unsupported Media Type</strong> (HTTP/1.1 - RFC 2616) */
99
	UNSUPPORTED_MEDIA_TYPE(415, "Unsupported Media Type"),
100
	/** <strong>416 Requested Range Not Satisfiable</strong> (HTTP/1.1 - RFC 2616) */
101
	REQUESTED_RANGE_NOT_SATISFIABLE(416, "Requested Range Not Satisfiable"),
102
	/** <strong>417 Expectation Failed</strong> (HTTP/1.1 - RFC 2616) */
103
	EXPECTATION_FAILED(417, "Expectation Failed"),
104
105
	/**
106
	 * Static constant for a 418 error. <strong>418 Unprocessable Entity</strong>
107
	 * (WebDAV drafts?) or <strong>418 Reauthentication Required</strong> (HTTP/1.1
108
	 * drafts?)
109
	 */
110
	// not used
111
	// UNPROCESSABLE_ENTITY(418, "Unprocessable Entity");
112
113
	/**
114
	 * Static constant for a 419 error.
115
	 * <strong>419 Insufficient Space on Resource</strong> (WebDAV -
116
	 * draft-ietf-webdav-protocol-05?) or
117
	 * <strong>419 Proxy Reauthentication Required</strong> (HTTP/1.1 drafts?)
118
	 */
119
	INSUFFICIENT_SPACE_ON_RESOURCE(419, "Insufficient Space on Resource"),
120
	/**
121
	 * Static constant for a 419 error.
122
	 * <strong>419 Insufficient Space on Resource</strong> (WebDAV -
123
	 * draft-ietf-webdav-protocol-05?) or
124
	 * <strong>419 Proxy Reauthentication Required</strong> (HTTP/1.1 drafts?)
125
	 */
126
	PROXY_REAUTHENTICATION_REQUIRED(419, "Proxy Reauthentication Required"),
127
	/**
128
	 * Static constant for a 420 error. <strong>420 Method Failure</strong> (WebDAV -
129
	 * draft-ietf-webdav-protocol-05?)
130
	 */
131
	METHOD_FAILURE(420, "Method Failure"),
132
	/** <strong>422 Unprocessable Entity</strong> (WebDAV - RFC 2518) */
133
	UNPROCESSABLE_ENTITY(422, "Unprocessable Entity"),
134
	/** <strong>423 Locked</strong> (WebDAV - RFC 2518) */
135
	LOCKED(423, "Locked"),
136
	/** <strong>424 Failed Dependency</strong> (WebDAV - RFC 2518) */
137
	FAILED_DEPENDENCY(424, "Failed Dependency"),
138
139
	// --- 5xx Server Error ---
140
141
	/** <strong>500 Server Error</strong> (HTTP/1.0 - RFC 1945) */
142
	INTERNAL_SERVER_ERROR(500, "Server Error"),
143
	/** <strong>501 Not Implemented</strong> (HTTP/1.0 - RFC 1945) */
144
	NOT_IMPLEMENTED(501, "Not Implemented"),
145
	/** <strong>502 Bad Gateway</strong> (HTTP/1.0 - RFC 1945) */
146
	BAD_GATEWAY(502, "Bad Gateway"),
147
	/** <strong>503 Service Unavailable</strong> (HTTP/1.0 - RFC 1945) */
148
	SERVICE_UNAVAILABLE(503, "Service Unavailable"),
149
	/** <strong>504 Gateway Timeout</strong> (HTTP/1.1 - RFC 2616) */
150
	GATEWAY_TIMEOUT(504, "Gateway Timeout"),
151
	/** <strong>505 HTTP Version Not Supported</strong> (HTTP/1.1 - RFC 2616) */
152
	HTTP_VERSION_NOT_SUPPORTED(505, "HTTP Version Not Supported"),
153
154
	/** <strong>507 Insufficient Storage</strong> (WebDAV - RFC 2518) */
155
	INSUFFICIENT_STORAGE(507, "Insufficient Storage");
156
157
	private static final int SERVER_ERROR_STATUS_START = 500;
158
	private static final int CLIENT_ERROR_STATUS_START = 400;
159
	private static final int REDIRECT_STATUS_START = 300;
160
	private static final int SUCCESS_STATUS_START = 200;
161
	private static final int INFORMAL_STATUS_START = 100;
162
163
	private int code;
164
165
	private String reason;
166
167
	HttpStatus(int code, String reason) {
168
		this.code = code;
169
		this.reason = reason;
170
	}
171
172
	public int getCode() {
173 2 1. getCode : replaced int return with 0 for fr/sii/ogham/sms/util/http/HttpStatus::getCode → NO_COVERAGE
2. getCode : replaced int return with 0 for fr/sii/ogham/sms/util/http/HttpStatus::getCode → KILLED
		return code;
174
	}
175
176
	public String getReason() {
177 1 1. getReason : replaced return value with "" for fr/sii/ogham/sms/util/http/HttpStatus::getReason → NO_COVERAGE
		return reason;
178
	}
179
180
	/**
181
	 * Is the HTTP status stand for informal (between 100 inclusive and 200
182
	 * exclusive)
183
	 * 
184
	 * @return true if informal
185
	 */
186
	public boolean isInformal() {
187 5 1. isInformal : replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isInformal → NO_COVERAGE
2. isInformal : changed conditional boundary → NO_COVERAGE
3. isInformal : changed conditional boundary → NO_COVERAGE
4. isInformal : negated conditional → NO_COVERAGE
5. isInformal : negated conditional → NO_COVERAGE
		return code >= INFORMAL_STATUS_START && code < SUCCESS_STATUS_START;
188
	}
189
190
	/**
191
	 * Is the HTTP status stand for success (between 200 inclusive and 300
192
	 * exclusive)
193
	 * 
194
	 * @return true if success
195
	 */
196
	public boolean isSuccess() {
197 10 1. isSuccess : replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isSuccess → NO_COVERAGE
2. isSuccess : changed conditional boundary → NO_COVERAGE
3. isSuccess : changed conditional boundary → NO_COVERAGE
4. isSuccess : negated conditional → NO_COVERAGE
5. isSuccess : negated conditional → NO_COVERAGE
6. isSuccess : replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isSuccess → TIMED_OUT
7. isSuccess : changed conditional boundary → TIMED_OUT
8. isSuccess : changed conditional boundary → KILLED
9. isSuccess : negated conditional → KILLED
10. isSuccess : negated conditional → KILLED
		return code >= SUCCESS_STATUS_START && code < REDIRECT_STATUS_START;
198
	}
199
200
	/**
201
	 * Is the HTTP status stand for redirect (between 300 inclusive and 400
202
	 * exclusive)
203
	 * 
204
	 * @return true if redirect
205
	 */
206
	public boolean isRedirect() {
207 5 1. isRedirect : replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isRedirect → NO_COVERAGE
2. isRedirect : changed conditional boundary → NO_COVERAGE
3. isRedirect : changed conditional boundary → NO_COVERAGE
4. isRedirect : negated conditional → NO_COVERAGE
5. isRedirect : negated conditional → NO_COVERAGE
		return code >= REDIRECT_STATUS_START && code < CLIENT_ERROR_STATUS_START;
208
	}
209
210
	/**
211
	 * Is the HTTP status stand for client error (between 400 inclusive and 500
212
	 * exclusive)
213
	 * 
214
	 * @return true if client error
215
	 */
216
	public boolean isClientError() {
217 5 1. isClientError : replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isClientError → NO_COVERAGE
2. isClientError : changed conditional boundary → NO_COVERAGE
3. isClientError : changed conditional boundary → NO_COVERAGE
4. isClientError : negated conditional → NO_COVERAGE
5. isClientError : negated conditional → NO_COVERAGE
		return code >= CLIENT_ERROR_STATUS_START && code < SERVER_ERROR_STATUS_START;
218
	}
219
220
	/**
221
	 * Is the HTTP status stand for server error (between 500 inclusive and 600
222
	 * exclusive)
223
	 * 
224
	 * @return true if server error
225
	 */
226
	public boolean isServerError() {
227 3 1. isServerError : replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isServerError → NO_COVERAGE
2. isServerError : changed conditional boundary → NO_COVERAGE
3. isServerError : negated conditional → NO_COVERAGE
		return code >= SERVER_ERROR_STATUS_START;
228
	}
229
230
	public static HttpStatus valueOf(int code) {
231
		HttpStatus[] values = HttpStatus.values();
232
		for (HttpStatus value : values) {
233 2 1. valueOf : negated conditional → NO_COVERAGE
2. valueOf : negated conditional → KILLED
			if (value.getCode() == code) {
234 2 1. valueOf : replaced return value with null for fr/sii/ogham/sms/util/http/HttpStatus::valueOf → NO_COVERAGE
2. valueOf : replaced return value with null for fr/sii/ogham/sms/util/http/HttpStatus::valueOf → KILLED
				return value;
235
			}
236
		}
237
		throw new IllegalArgumentException("Unknown HTTP status code (" + code + ")");
238
	}
239
}

Mutations

173

1.1
Location : getCode
Killed by : none
replaced int return with 0 for fr/sii/ogham/sms/util/http/HttpStatus::getCode → NO_COVERAGE

2.2
Location : getCode
Killed by : oghamovh.it.OvhSmsTest.phoneNumberConversion(oghamovh.it.OvhSmsTest)
replaced int return with 0 for fr/sii/ogham/sms/util/http/HttpStatus::getCode → KILLED

177

1.1
Location : getReason
Killed by : none
replaced return value with "" for fr/sii/ogham/sms/util/http/HttpStatus::getReason → NO_COVERAGE

187

1.1
Location : isInformal
Killed by : none
replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isInformal → NO_COVERAGE

2.2
Location : isInformal
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : isInformal
Killed by : none
changed conditional boundary → NO_COVERAGE

4.4
Location : isInformal
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : isInformal
Killed by : none
negated conditional → NO_COVERAGE

197

1.1
Location : isSuccess
Killed by : none
replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isSuccess → TIMED_OUT

2.2
Location : isSuccess
Killed by : none
replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isSuccess → NO_COVERAGE

3.3
Location : isSuccess
Killed by : oghamovh.it.OvhSmsTest.phoneNumberConversion(oghamovh.it.OvhSmsTest)
changed conditional boundary → KILLED

4.4
Location : isSuccess
Killed by : none
changed conditional boundary → NO_COVERAGE

5.5
Location : isSuccess
Killed by : none
changed conditional boundary → TIMED_OUT

6.6
Location : isSuccess
Killed by : none
changed conditional boundary → NO_COVERAGE

7.7
Location : isSuccess
Killed by : none
negated conditional → NO_COVERAGE

8.8
Location : isSuccess
Killed by : oghamovh.it.OvhSmsTest.phoneNumberConversion(oghamovh.it.OvhSmsTest)
negated conditional → KILLED

9.9
Location : isSuccess
Killed by : oghamovh.it.OvhSmsTest.phoneNumberConversion(oghamovh.it.OvhSmsTest)
negated conditional → KILLED

10.10
Location : isSuccess
Killed by : none
negated conditional → NO_COVERAGE

207

1.1
Location : isRedirect
Killed by : none
replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isRedirect → NO_COVERAGE

2.2
Location : isRedirect
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : isRedirect
Killed by : none
changed conditional boundary → NO_COVERAGE

4.4
Location : isRedirect
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : isRedirect
Killed by : none
negated conditional → NO_COVERAGE

217

1.1
Location : isClientError
Killed by : none
replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isClientError → NO_COVERAGE

2.2
Location : isClientError
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : isClientError
Killed by : none
changed conditional boundary → NO_COVERAGE

4.4
Location : isClientError
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : isClientError
Killed by : none
negated conditional → NO_COVERAGE

227

1.1
Location : isServerError
Killed by : none
replaced boolean return with true for fr/sii/ogham/sms/util/http/HttpStatus::isServerError → NO_COVERAGE

2.2
Location : isServerError
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : isServerError
Killed by : none
negated conditional → NO_COVERAGE

233

1.1
Location : valueOf
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : valueOf
Killed by : oghamovh.it.OvhSmsTest.phoneNumberConversion(oghamovh.it.OvhSmsTest)
negated conditional → KILLED

234

1.1
Location : valueOf
Killed by : oghamovh.it.OvhSmsTest.phoneNumberConversion(oghamovh.it.OvhSmsTest)
replaced return value with null for fr/sii/ogham/sms/util/http/HttpStatus::valueOf → KILLED

2.2
Location : valueOf
Killed by : none
replaced return value with null for fr/sii/ogham/sms/util/http/HttpStatus::valueOf → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT OGHAM