You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ko...@apache.org on 2014/03/22 20:41:52 UTC

[2/4] git commit: updated refs/heads/master to 265208a

new unit test for ApiResponseHelper

- unit test for getDateStringInternal
- StringBuffer replaced with StringBuilder, string concatenation replaced with append

Signed-off-by: Laszlo Hornyak <la...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/dd225684
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/dd225684
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/dd225684

Branch: refs/heads/master
Commit: dd225684f43ec55febaae1b4023eb4075643da64
Parents: 2c4ac5e
Author: Laszlo Hornyak <la...@gmail.com>
Authored: Sat Mar 22 09:22:20 2014 +0100
Committer: Laszlo Hornyak <la...@gmail.com>
Committed: Sat Mar 22 18:34:46 2014 +0100

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiResponseHelper.java | 45 ++++++-------
 .../com/cloud/api/ApiResponseHelperTest.java    | 68 ++++++++++++++++++++
 2 files changed, 89 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd225684/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 02f7789..9915ea9 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -3389,45 +3389,40 @@ public class ApiResponseHelper implements ResponseGenerator {
         Calendar cal = Calendar.getInstance(tz);
         cal.setTime(inputDate);
 
-        StringBuffer sb = new StringBuffer();
-        sb.append(cal.get(Calendar.YEAR) + "-");
+        StringBuilder sb = new StringBuilder(32);
+        sb.append(cal.get(Calendar.YEAR)).append('-');
 
         int month = cal.get(Calendar.MONTH) + 1;
         if (month < 10) {
-            sb.append("0" + month + "-");
-        } else {
-            sb.append(month + "-");
+            sb.append('0');
         }
+        sb.append(month).append('-');
 
         int day = cal.get(Calendar.DAY_OF_MONTH);
         if (day < 10) {
-            sb.append("0" + day);
-        } else {
-            sb.append("" + day);
+            sb.append('0');
         }
+        sb.append(day);
 
         sb.append("'T'");
 
         int hour = cal.get(Calendar.HOUR_OF_DAY);
         if (hour < 10) {
-            sb.append("0" + hour + ":");
-        } else {
-            sb.append(hour + ":");
+            sb.append('0');
         }
+        sb.append(hour).append(':');
 
         int minute = cal.get(Calendar.MINUTE);
         if (minute < 10) {
-            sb.append("0" + minute + ":");
-        } else {
-            sb.append(minute + ":");
+            sb.append('0');
         }
+        sb.append(minute).append(':');
 
         int seconds = cal.get(Calendar.SECOND);
         if (seconds < 10) {
-            sb.append("0" + seconds);
-        } else {
-            sb.append("" + seconds);
+            sb.append('0');
         }
+        sb.append(seconds);
 
         double offset = cal.get(Calendar.ZONE_OFFSET);
         if (tz.inDaylightTime(inputDate)) {
@@ -3443,26 +3438,28 @@ public class ApiResponseHelper implements ResponseGenerator {
 
         if (hourOffset < 0) {
             if (hourOffset > -10) {
-                sb.append("-0" + Math.abs(hourOffset));
+                sb.append("-0");
             } else {
-                sb.append("-" + Math.abs(hourOffset));
+                sb.append('-');
             }
+            sb.append(Math.abs(hourOffset));
         } else {
             if (hourOffset < 10) {
-                sb.append("+0" + hourOffset);
+                sb.append("+0");
             } else {
-                sb.append("+" + hourOffset);
+                sb.append("+");
             }
+            sb.append(hourOffset);
         }
 
-        sb.append(":");
+        sb.append(':');
 
         if (minuteOffset == 0) {
             sb.append("00");
         } else if (minuteOffset < 10) {
-            sb.append("0" + minuteOffset);
+            sb.append('0').append(minuteOffset);
         } else {
-            sb.append("" + minuteOffset);
+            sb.append(minuteOffset);
         }
 
         return sb.toString();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd225684/server/test/com/cloud/api/ApiResponseHelperTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/api/ApiResponseHelperTest.java b/server/test/com/cloud/api/ApiResponseHelperTest.java
new file mode 100644
index 0000000..880332c
--- /dev/null
+++ b/server/test/com/cloud/api/ApiResponseHelperTest.java
@@ -0,0 +1,68 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.api;
+
+import java.lang.reflect.Field;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.TimeZone;
+
+import org.apache.cloudstack.usage.UsageService;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ApiResponseHelperTest {
+
+    @Mock
+    UsageService usageService;
+
+    ApiResponseHelper helper;
+
+    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss ZZZ");
+
+    @Before
+    public void injectMocks() throws SecurityException, NoSuchFieldException,
+            IllegalArgumentException, IllegalAccessException {
+        Field usageSvcField = ApiResponseHelper.class
+                .getDeclaredField("_usageSvc");
+        usageSvcField.setAccessible(true);
+        helper = new ApiResponseHelper();
+        usageSvcField.set(helper, usageService);
+    }
+
+    @Test
+    public void getDateStringInternal() throws ParseException {
+        Mockito.when(usageService.getUsageTimezone()).thenReturn(
+                TimeZone.getTimeZone("UTC"));
+        Assert.assertEquals("2014-06-29'T'23:45:00+00:00", helper
+                .getDateStringInternal(dateFormat.parse("2014-06-29 23:45:00 UTC")));
+        Assert.assertEquals("2014-06-29'T'23:45:01+00:00", helper
+                .getDateStringInternal(dateFormat.parse("2014-06-29 23:45:01 UTC")));
+        Assert.assertEquals("2014-06-29'T'23:45:11+00:00", helper
+                .getDateStringInternal(dateFormat.parse("2014-06-29 23:45:11 UTC")));
+        Assert.assertEquals("2014-06-29'T'23:05:11+00:00", helper
+                .getDateStringInternal(dateFormat.parse("2014-06-29 23:05:11 UTC")));
+        Assert.assertEquals("2014-05-29'T'08:45:11+00:00", helper
+                .getDateStringInternal(dateFormat.parse("2014-05-29 08:45:11 UTC")));
+    }
+}