mirror of https://github.com/apache/cloudstack.git
new unit test for ApiResponseHelper
- unit test for getDateStringInternal - StringBuffer replaced with StringBuilder, string concatenation replaced with append Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
This commit is contained in:
parent
2c4ac5e4d3
commit
dd225684f4
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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")));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue