Package ee.devclub.rest

Source Code of ee.devclub.rest.PhotoSpotResourceTest

package ee.devclub.rest;

import ee.devclub.model.Location;
import ee.devclub.model.PhotoSpot;
import ee.devclub.model.PhotoSpotRepository;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;

import static java.util.Collections.*;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

public class PhotoSpotResourceTest {
    PhotoSpotResource resource = new PhotoSpotResource();

    @Before
    public void initMocks() throws Exception {
        resource.repo = mock(PhotoSpotRepository.class, RETURNS_DEEP_STUBS);
    }

    @Test
    public void resourceLimitedNumberOfSpotsInRepo() throws Exception {
        resource.maxSpots = 10;
        PhotoSpot photoSpot = mock(PhotoSpot.class);
        when(resource.repo.getAllSpots()).thenReturn(nCopies(15, photoSpot));

        assertEquals(10, resource.getAllSpots().size());
    }

    @Test
    public void newPhotoSpotsArePersisted() throws Exception {
        resource.newPhotoSpot("Aegna island", "WWI defence structures", 59.583771f, 24.749720f);

        ArgumentCaptor<PhotoSpot> captor = ArgumentCaptor.forClass(PhotoSpot.class);
        verify(resource.repo).persist(captor.capture());

        PhotoSpot spot = captor.getValue();
        assertThat(spot.getName(), is("Aegna island"));
        assertThat(spot.getDescription(), is("WWI defence structures"));
        assertThat(spot.getLocation(), is(new Location(59.583771f, 24.749720f)));
    }
}
TOP

Related Classes of ee.devclub.rest.PhotoSpotResourceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.