/* * Copyright 2008 the original author or authors. * * 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 samples.system; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.*; import java.util.Collections; import java.util.List; import java.util.UUID; /** * Class used to demonstrate PowerMock's ability to mock system classes. */ public class SystemClassUser { public void threadSleep() throws InterruptedException { Thread.sleep(5000); } public String performEncode() throws UnsupportedEncodingException { return URLEncoder.encode("string", "enc"); } public Process executeCommand() throws IOException { return Runtime.getRuntime().exec("command"); } public String getSystemProperty() throws IOException { return System.getProperty("property"); } public void doMoreComplicatedStuff() throws IOException { System.setProperty("nanoTime", Long.toString(System.nanoTime())); } public void copyProperty(String to, String from) throws IOException { System.setProperty(to, System.getProperty(from)); } public String format(String one, String args) throws IOException { return String.format(one, args); } public URL newURL(String anUrl) throws MalformedURLException { return new URL(anUrl); } public StringBuilder newStringBuilder() { return new StringBuilder(); } public void shuffleCollection(List<?> list) { Collections.shuffle(list); } public URLConnection useURL(URL url) throws IOException { return url.openConnection(); } public InetAddress getLocalHost() throws IOException { return InetAddress.getLocalHost(); } public String generatePerishableToken() { final UUID uuid = UUID.randomUUID(); final String toString = uuid.toString(); final String result = toString.replaceAll("-", ""); return result; } public int lengthOf(StringBuilder to){ // The trick here is the casting to CharSequence, // this is to test that the runtime type(StringBuilder) is checked for mocked calls and not // the compile-time type (CharSequence) return lengthOf((CharSequence) to); } private int lengthOf(CharSequence to){ return to.length(); } }