From 75231805ecd1981ef4797846a4c41e207b31a4e7 Mon Sep 17 00:00:00 2001 From: Greg Schueler Date: Fri, 7 Nov 2014 15:37:19 -0800 Subject: [PATCH 1/3] Test query parameter generation for date strings --- .../api/ExecutionQueryParametersTest.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/test/java/org/rundeck/api/ExecutionQueryParametersTest.java diff --git a/src/test/java/org/rundeck/api/ExecutionQueryParametersTest.java b/src/test/java/org/rundeck/api/ExecutionQueryParametersTest.java new file mode 100644 index 0000000..dad5254 --- /dev/null +++ b/src/test/java/org/rundeck/api/ExecutionQueryParametersTest.java @@ -0,0 +1,54 @@ +package org.rundeck.api; + +import junit.framework.Assert; +import org.junit.Test; +import org.rundeck.api.query.ExecutionQuery; + +import java.util.Arrays; +import java.util.Date; + +/** + * ExecutionQueryParametersTest is ... + * + * @author Greg Schueler + * @since 2014-11-07 + */ +public class ExecutionQueryParametersTest { + + @Test + public void stringParameter() { + ExecutionQuery.Builder description = ExecutionQuery.builder().description("a description"); + ExecutionQueryParameters executionQueryParameters = new ExecutionQueryParameters( + description.build() + ); + ApiPathBuilder param = new ApiPathBuilder("").param(executionQueryParameters); + Assert.assertEquals("?descFilter=a+description", param.toString()); + } + @Test + public void listParameter() { + ExecutionQuery.Builder description = ExecutionQuery.builder().excludeJobList( + Arrays.asList( + "a", + "b" + ) + ); + ExecutionQueryParameters executionQueryParameters = new ExecutionQueryParameters( + description.build() + ); + ApiPathBuilder param = new ApiPathBuilder("").param(executionQueryParameters); + Assert.assertEquals("?excludeJobListFilter=a&excludeJobListFilter=b", param.toString()); + } + @Test + public void dateParameter() { + ExecutionQuery.Builder description = ExecutionQuery.builder().end( + new Date(1347581178168L) + ); + ExecutionQueryParameters executionQueryParameters = new ExecutionQueryParameters( + description.build() + ); + ApiPathBuilder param = new ApiPathBuilder("").param(executionQueryParameters); + //nb: timezone should be GMT + //2012-09-14T00:06:18Z + Assert.assertEquals("?end=2012-09-14T00%3A06%3A18Z", param.toString()); + } +} From 3219161dd34a23bcbfc7cb355e54e536e4b4544c Mon Sep 17 00:00:00 2001 From: Greg Schueler Date: Fri, 7 Nov 2014 15:42:22 -0800 Subject: [PATCH 2/3] Use GMT time zone for date formatter --- src/main/java/org/rundeck/api/QueryParameterBuilder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/rundeck/api/QueryParameterBuilder.java b/src/main/java/org/rundeck/api/QueryParameterBuilder.java index 6fd0126..23db9bb 100644 --- a/src/main/java/org/rundeck/api/QueryParameterBuilder.java +++ b/src/main/java/org/rundeck/api/QueryParameterBuilder.java @@ -36,6 +36,9 @@ import java.util.*; abstract class QueryParameterBuilder implements ApiPathBuilder.BuildsParameters { public static final String W3C_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'"; static final SimpleDateFormat format = new SimpleDateFormat(W3C_DATE_FORMAT); + static { + format.setTimeZone(TimeZone.getTimeZone("GMT")); + } /** * Add a value to the builder for a given key From 7bad157911feb120e57d8bf5d542ba34f8726efe Mon Sep 17 00:00:00 2001 From: Greg Schueler Date: Fri, 7 Nov 2014 15:42:37 -0800 Subject: [PATCH 3/3] Fix expected generated dates for executions test --- src/test/resources/betamax/tapes/get_executions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/resources/betamax/tapes/get_executions.yaml b/src/test/resources/betamax/tapes/get_executions.yaml index 740a0c5..f87fb2d 100644 --- a/src/test/resources/betamax/tapes/get_executions.yaml +++ b/src/test/resources/betamax/tapes/get_executions.yaml @@ -38,7 +38,7 @@ interactions: - recorded: 2012-09-14T22:04:13.342Z request: method: GET - uri: http://rundeck.local:4440/api/5/executions?project=blah&begin=2012-09-13T17%3A06%3A18Z&max=2&offset=0 + uri: http://rundeck.local:4440/api/5/executions?project=blah&begin=2012-09-14T00%3A06%3A18Z&max=2&offset=0 headers: Accept: text/xml Host: rundeck.local:4440 @@ -54,7 +54,7 @@ interactions: - recorded: 2012-09-14T22:04:13.404Z request: method: GET - uri: http://rundeck.local:4440/api/5/executions?project=blah&end=2012-09-13T17%3A06%3A18Z&max=2&offset=0 + uri: http://rundeck.local:4440/api/5/executions?project=blah&end=2012-09-14T00%3A06%3A18Z&max=2&offset=0 headers: Accept: text/xml Host: rundeck.local:4440