/* * Copyright 2009 David Linsin * 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 de.linsin.github.rest.service; import de.linsin.github.rest.resource.RepositoriesResponse; import de.linsin.github.rest.domain.Repository; import de.linsin.github.rest.resource.RepositoryResponse; import static org.easymock.EasyMock.expect; import static org.easymock.classextension.EasyMock.*; import org.junit.After; import static org.junit.Assert.assertNotNull; import org.junit.Before; import org.junit.Test; import org.springframework.web.client.RestTemplate; /** * Testing {@link RepositoryBrowser} * * @author David Linsin - dlinsin@gmail.com */ public class RepositoryBrowserTest { private RepositoryBrowser classUnderTest; private RestTemplate mockRestTemplate; @Before public void setUp() { mockRestTemplate = createMock(RestTemplate.class); classUnderTest = new RepositoryBrowser() { @Override protected RestTemplate initTemplate() { return mockRestTemplate; } }; } @After public void tearDown() { reset(mockRestTemplate); } @Test public void browse_repos() { String testUser = "dlinsin"; RepositoriesResponse response = new RepositoriesResponse(); response.setRepositories(new Repository[]{new Repository()}); expect(mockRestTemplate.getForObject(RepositoryBrowser.REPOSITORIES_URL, RepositoriesResponse.class, testUser)).andReturn(response); replay(mockRestTemplate); assertNotNull(classUnderTest.browse(testUser)); verify(mockRestTemplate); } @Test public void browse_repos_return_null() { String testUser = "dlinsin"; expect(mockRestTemplate.getForObject(RepositoryBrowser.REPOSITORIES_URL, RepositoriesResponse.class, testUser)).andReturn(null); replay(mockRestTemplate); assertNotNull(classUnderTest.browse(testUser)); verify(mockRestTemplate); } @Test(expected = NullPointerException.class) public void browse_repos_pass_null_user() { String testUser = null; expect(mockRestTemplate.getForObject(RepositoryBrowser.REPOSITORIES_URL, RepositoriesResponse.class, testUser)).andThrow(new NullPointerException()); replay(mockRestTemplate); classUnderTest.browse(testUser); } @Test public void browse_repo() { String testUser = "dlinsin"; String testRepo = "area51"; RepositoryResponse response = new RepositoryResponse(); response.setRepository(new Repository()); expect(mockRestTemplate.getForObject(RepositoryBrowser.REPOSITORY_URL, RepositoryResponse.class, testUser, testRepo)).andReturn(response); replay(mockRestTemplate); assertNotNull(classUnderTest.browse(testUser, testRepo)); verify(mockRestTemplate); } @Test(expected = NullPointerException.class) public void browse_repo_return_null() { String testUser = "dlinsin"; String testRepo = "area51"; expect(mockRestTemplate.getForObject(RepositoryBrowser.REPOSITORY_URL, RepositoryResponse.class, testUser, testRepo)).andReturn(null); replay(mockRestTemplate); classUnderTest.browse(testUser, testRepo); } @Test(expected = NullPointerException.class) public void browse_repos_pass_null_param() { String testUser = null; String testRepo = "area51"; expect(mockRestTemplate.getForObject(RepositoryBrowser.REPOSITORY_URL, RepositoryResponse.class, testUser, testRepo)).andThrow(new NullPointerException()); replay(mockRestTemplate); classUnderTest.browse(testUser, testRepo); } }