Package br.com.hotel.integration

Source Code of br.com.hotel.integration.HotelIntegrationServiceBeanTest

package br.com.hotel.integration;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;

import java.util.ArrayList;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;

import br.com.hotel.domain.Hotel;
import br.com.hotel.integration.api.BrokenFilter;
import br.com.hotel.integration.api.Broker;

public class HotelIntegrationServiceBeanTest {


  @InjectMocks
  private HotelIntegrationServiceBean hotelIntegrationServiceBean;


  @Mock
  private BrokenService brokenService;


  @Before
  public void setUp() throws Exception {
    hotelIntegrationServiceBean = new HotelIntegrationServiceBean();
    initMocks(this);
  }



  @After
  public void tearDown() throws Exception {
    hotelIntegrationServiceBean = null;
    reset(brokenService);
  }































  @Test
  public void shouldReturnListOfHotels() {

    List<Broker> brokers = new ArrayList<>();

    Broker broker1 = mock(Broker.class);
    Broker broker2 = mock(Broker.class);

    brokers.add(broker1);
    brokers.add(broker2);

    List<Hotel> hotelsBroker1 = new ArrayList<>();
    hotelsBroker1.add(new Hotel("broker1-hotel1", 3));
    hotelsBroker1.add(new Hotel("broker1-hotel2", 1));
    hotelsBroker1.add(new Hotel("broker1-hotel3", 3));
    hotelsBroker1.add(new Hotel("broker1-hotel4", 5));


    List<Hotel> hotelsBroker2 = new ArrayList<>();
    hotelsBroker1.add(new Hotel("broker2-hotel1", 3));
    hotelsBroker1.add(new Hotel("broker2-hotel2", 1));
    hotelsBroker1.add(new Hotel("broker2-hotel3", 3));
    hotelsBroker1.add(new Hotel("broker2-hotel4", 5));


    // TODO: em relação ao broken filter no momento pode ser qualquer um
    // pelo fato de se trata de uma poc de arquitetura e nao temos nada
    // definido ainda em relacao aos parametros de consulta nos brokens..
    when(broker1.getHotels(any(BrokenFilter.class))).thenReturn(hotelsBroker1);
    when(broker2.getHotels(any(BrokenFilter.class))).thenReturn(hotelsBroker2);


    // TODO: no momento iremos apenas utilizar o pais como região
    // para obter os brokers
    when(brokenService.getBrokers(new Region("Brasil"))).thenReturn(brokers);


    List<Hotel> hotels =
        hotelIntegrationServiceBean.getHotels( new HotelIntegrationFilter(3, "Brasil") ); // only hotels 3 stars


        verify(brokenService).getBrokers(new Region("Brasil"));
        verify(broker1).getHotels(any(BrokenFilter.class));
        verify(broker2).getHotels(any(BrokenFilter.class));


    assertNotNull(hotels);
    assertEquals(4, hotels.size());
    assertEquals("broker1-hotel1", hotels.get(0).getName());
    assertEquals("broker1-hotel3", hotels.get(1).getName());
    assertEquals("broker2-hotel1", hotels.get(2).getName());
    assertEquals("broker2-hotel3", hotels.get(3).getName());

  }



















}
TOP

Related Classes of br.com.hotel.integration.HotelIntegrationServiceBeanTest

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.