/* * Copyright 2013 Joseph Spencer. * * 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.spencernetdevelopment; import java.io.File; import java.io.IOException; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; /** * * @author Joseph Spencer */ public class TestUtils { /** * * @param base * @param file This should be a mock object. * @return * @throws IOException */ public static FilePath getResolvingFilePath(final String base, final File file) throws IOException { FilePath mock = mock(FilePath.class); when(file.getAbsolutePath()).thenReturn(base); when(mock.toString()).thenReturn(base); when(mock.toUnix()).thenReturn(base); when(mock.toFile()).thenReturn(file); when(mock.resolve(anyString())).thenAnswer(new Answer<FilePath>(){ @Override public FilePath answer(InvocationOnMock invocation) throws Throwable { String path = (String)invocation.getArguments()[0]; return getResolvingFilePath(base+"/"+path, file); } }); return mock; } }