/* * Copyright (c) 2002-2012 Alibaba Group Holding Limited. * All rights reserved. * * Licensed 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.alibaba.citrus.util; import static org.junit.Assert.*; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.util.Locale; import com.alibaba.citrus.util.SystemUtil.UserInfo; import org.junit.Test; /** * 测试<code>Utils</code>类。 * * @author Michael Zhou */ public class UtilsTests { @Test public void utils_math() { assertTrue(Utils.getUtils().containsKey("mathUtil")); for (String key : Utils.getUtils().keySet()) { Object util = Utils.getUtils().get(key); if (!"mathUtil".equals(key) && !"utils".equals(key)) { assertEquals(StringUtil.capitalize(key), ClassUtil.getSimpleClassName(util.getClass())); } System.out.println(key + " => " + ObjectUtil.identityToString(util)); } } @Test public void utils_mixin() throws Exception { Object utils = Utils.getUtils().get("utils"); Method m; // ArrayUtil.class m = utils.getClass().getMethod("arrayLength", Object.class); assertEquals(0, m.invoke(utils, new int[0])); // ClassLoaderUtil.class m = utils.getClass().getMethod("loadClass", String.class); assertEquals(String.class, m.invoke(utils, "java.lang.String")); // ClassUtil.class m = utils.getClass().getMethod("getFriendlyClassName", Class.class); assertEquals("int[]", m.invoke(utils, int[].class)); // ExceptionUtil.class m = utils.getClass().getMethod("causedBy", Throwable.class, Class.class); assertEquals(true, m.invoke(utils, new RuntimeException(new IOException()), IOException.class)); // FileUtil.class m = utils.getClass().getMethod("normalizePath", String.class); assertEquals("a/c", m.invoke(utils, "a/b/../c")); // LocaleUtil.class m = utils.getClass().getMethod("isLocaleSupported", Locale.class); assertEquals(true, m.invoke(utils, Locale.US)); // MessageUtil.class m = utils.getClass().getMethod("formatMessage", String.class, Object[].class); assertEquals("a, b", m.invoke(utils, "{0}, {1}", new Object[] { "a", "b" })); // ObjectUtil.class m = utils.getClass().getMethod("isEmptyObject", Object.class); assertEquals(true, m.invoke(utils, (Object) null)); // StreamUtil.class m = utils.getClass().getMethod("readText", InputStream.class, String.class, boolean.class); assertEquals("hello", m.invoke(utils, new ByteArrayInputStream("hello".getBytes()), "8859_1", true)); // StringEscapeUtil.class m = utils.getClass().getMethod("escapeURL", String.class); assertEquals("+", m.invoke(utils, " ")); // StringUtil.class m = utils.getClass().getMethod("isBlank", String.class); assertEquals(true, m.invoke(utils, " ")); // SystemUtil.class m = utils.getClass().getMethod("getUserInfo"); assertTrue(m.invoke(utils) instanceof UserInfo); // Math.class m = utils.getClass().getMethod("abs", double.class); assertEquals(123D, m.invoke(utils, -123D)); } }