Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.30 KB | None | 0 0
  1. package rs.ac.uns.ftn.ktsnvt.repository.unit;
  2.  
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
  8. import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
  9. import org.springframework.data.domain.Page;
  10. import org.springframework.data.domain.PageRequest;
  11. import org.springframework.test.context.junit4.SpringRunner;
  12. import rs.ac.uns.ftn.ktsnvt.model.entity.*;
  13. import rs.ac.uns.ftn.ktsnvt.repository.BuildingRepository;
  14. import rs.ac.uns.ftn.ktsnvt.repository.TenantRepository;
  15.  
  16. import java.util.Date;
  17. import java.util.List;
  18.  
  19. import static org.junit.Assert.assertEquals;
  20. import static org.junit.Assert.assertNotNull;
  21. import static org.junit.Assert.assertNull;
  22.  
  23. /**
  24.  * Created by Ivana Zeljkovic on 28/11/2017.
  25.  */
  26. @RunWith(SpringRunner.class)
  27. @DataJpaTest
  28. public class TenantRepositoryUnitTest {
  29.  
  30.     @Autowired
  31.     private TestEntityManager entityManager;
  32.  
  33.     @Autowired
  34.     private TenantRepository tenantRepository;
  35.  
  36.     @Autowired
  37.     private BuildingRepository buildingRepository;
  38.  
  39.     private Long tenant_1_id;
  40.     private Long tenant_2_id;
  41.     private Long tenant_3_id;
  42.     private Long building_id;
  43.  
  44.  
  45.     @Before
  46.     public void setUp() {
  47.         // ACCOUNTS, TENANTS
  48.         Account account_1 = new Account("kaca", "kaca");
  49.         Tenant tenant_1 = new Tenant("Katarina", "Cukurov", new Date(),
  50.                 "kaca@gmail.com", "123456789", true, account_1);
  51.         account_1.setTenant(tenant_1);
  52.         Account account_2 = new Account("cuki", "kaca");
  53.         Tenant tenant_2 = new Tenant("Katarina", "Cukurov", new Date(),
  54.                 "cukurov@gmail.com", "987654321", true, account_2);
  55.         account_2.setTenant(tenant_2);
  56.         Account account_3 = new Account("marko", "marko");
  57.         Tenant tenant_3 = new Tenant("Marko", "Markovic", new Date(),
  58.                 "marko@gmail.com", "192837465", true, account_3);
  59.         account_3.setTenant(tenant_3);
  60.  
  61.         entityManager.persist(account_1);
  62.         entityManager.persist(account_2);
  63.         entityManager.persist(account_3);
  64.         this.tenant_1_id = (Long) entityManager.persistAndGetId(tenant_1);
  65.         this.tenant_2_id = (Long) entityManager.persistAndGetId(tenant_2);
  66.         this.tenant_3_id = (Long) entityManager.persistAndGetId(tenant_3);
  67.  
  68.  
  69.         // BUILDING (WITH ADDRESS)
  70.         City city = new City("Novi Sad", 21000);
  71.         Address address = new Address("Janka Veselinovica", 8, city);
  72.         Building building = new Building(5, true, address);
  73.         entityManager.persist(city);
  74.         entityManager.persist(address);
  75.         this.building_id = (Long)entityManager.persistAndGetId(building);
  76.  
  77.         // APARTMENTS
  78.         Apartment apartment_1 = new Apartment(1, 1, 60);
  79.         apartment_1.setBuilding(building);
  80.         Apartment apartment_2 = new Apartment(2, 1, 100);
  81.         apartment_2.setBuilding(building);
  82.  
  83.         apartment_1.getTenants().add(tenant_1);
  84.         apartment_1.getTenants().add(tenant_3);
  85.         apartment_2.getTenants().add(tenant_2);
  86.         entityManager.persist(apartment_1);
  87.         entityManager.persist(apartment_2);
  88.  
  89.         tenant_1.setApartmentLiveIn(apartment_1);
  90.         tenant_3.setApartmentLiveIn(apartment_1);
  91.         tenant_2.setApartmentLiveIn(apartment_2);
  92.         entityManager.merge(tenant_1);
  93.         entityManager.merge(tenant_2);
  94.         entityManager.merge(tenant_3);
  95.  
  96.         building.getApartments().add(apartment_1);
  97.         building.getApartments().add(apartment_2);
  98.         entityManager.merge(building);
  99.     }
  100.  
  101.     @Test
  102.     public void testFindTenantsByBuildingAndNameAndUsername() {
  103.         /*
  104.          * Test proverava ispravnost rada metode findTenantsByBuildingAndNameAndUsername repozitorijuma TenantRepository
  105.          * (pronalazenje stanara na osnovu zgrade, imena, prezimena i korisnickog imena)
  106.          * u slucaju kada postoji bar jedan stanar koji zadovoljava parametre pretrage
  107.          * */
  108.  
  109.         Building building = this.buildingRepository.findOne(this.building_id);
  110.  
  111.         /*
  112.         u zgradi sa ID-em = building_id postoji jedan stanar koji zadovoljava parametre:
  113.             ime = Katarina,
  114.             prezime = Cukurov,
  115.             korisnicko ime = kaca
  116.          */
  117.         List<Tenant> tenants = this.tenantRepository.findTenantsByBuildingAndNameAndUsername(
  118.                 this.building_id, "Katarina", "Cukurov", "kaca");
  119.  
  120.         assertEquals(1, tenants.size());
  121.         assertEquals("Katarina", tenants.get(0).getFirstName());
  122.         assertEquals("Cukurov", tenants.get(0).getLastName());
  123.         assertEquals("kaca", tenants.get(0).getAccount().getUsername());
  124.         assertEquals(building.getAddress(), tenants.get(0).getApartmentLiveIn().getBuilding().getAddress());
  125.     }
  126.  
  127.     @Test
  128.     public void testFindTenantsByBuildingAndNameAndUsernameNonexistent() {
  129.         /*
  130.          * Test proverava ispravnost rada metode findTenantsByBuildingAndNameAndUsername repozitorijuma TenantRepository
  131.          * (pronalazenje stanara na osnovu zgrade, imena, prezimena i korisnickog imena)
  132.          * u slucaju kada ne postoji nijedan stanar koji zadovoljava parametre pretrage
  133.          * */
  134.  
  135.         /*
  136.         u zgradi sa ID-em = building_id ne postoji nijedan stanar koji zadovoljava parametre:
  137.             ime = Katarina,
  138.             prezime = Markovic,
  139.             korisnicko ime = marko
  140.          */
  141.         List<Tenant> tenants = this.tenantRepository.findTenantsByBuildingAndNameAndUsername(
  142.                 this.building_id, "Katarina", "Markovic", "marko");
  143.  
  144.         assertEquals(0, tenants.size());
  145.     }
  146.  
  147.     @Test
  148.     public void testFindByNameOrUsername() {
  149.         /*
  150.          * Test proverava ispravnost rada metode findByNameOrUsername repozitorijuma TenantRepository
  151.          * (pronalazenje stanara na imena i prezimena ili korisnickog imena)
  152.          * u slucaju kada postoji bar jedan stanar koji zadovoljava parametre pretrage
  153.          * */
  154.  
  155.         /*
  156.         postoje dva stanara koji zadovoljavaju pretragu sa parametrima:
  157.             (ime = Marko && prezime = Markovic) || korisnicko ime = cuki
  158.          */
  159.         List<Tenant> tenants_list = this.tenantRepository.findByNameOrUsername("Marko", "Markovic", "cuki");
  160.  
  161.         assertEquals(2, tenants_list.size());
  162.     }
  163.  
  164.     @Test
  165.     public void testFindByNameOrUsernameNonExistent() {
  166.         /*
  167.          * Test proverava ispravnost rada metode findByNameOrUsername repozitorijuma TenantRepository
  168.          * (pronalazenje stanara na imena i prezimena ili korisnickog imena)
  169.          * u slucaju kada ne postoji nijedan stanar koji zadovoljava parametre pretrage
  170.          * */
  171.  
  172.         /*
  173.         ne postoji nijedan stanar koji zadovoljava pretragu sa parametrima:
  174.             (ime = Ivan && prezime = Juric) || korisnicko ime = dalibor
  175.          */
  176.         List<Tenant> tenants = this.tenantRepository.findByNameOrUsername("Ivan", "Juric", "dalibor");
  177.  
  178.         assertEquals(0, tenants.size());
  179.     }
  180.  
  181.     @Test
  182.     public void testFindByNameAndUsername() {
  183.         /*
  184.          * Test proverava ispravnost rada metode findByNameAndUsername repozitorijuma TenantRepository
  185.          * (pronalazenje stanara na imena i prezimena i korisnickog imena)
  186.          * u slucaju kada postoji bar jedan stanar koji zadovoljava parametre pretrage
  187.          * */
  188.  
  189.         /*
  190.         postoji samo jedan stanar koji zadovoljava pretragu sa parametrima:
  191.             ime = Marko && prezime = Markovic && korisnicko ime = marko
  192.         i to je stanar ciji je ID = tenant_3_id
  193.          */
  194.         Tenant tenant = this.tenantRepository.findByNameAndUsername("Marko", "Markovic", "marko");
  195.  
  196.         assertNotNull(tenant);
  197.         assertEquals(this.tenant_3_id, tenant.getId());
  198.         assertEquals("Marko", tenant.getFirstName());
  199.         assertEquals("Markovic", tenant.getLastName());
  200.         assertEquals("marko", tenant.getAccount().getUsername());
  201.     }
  202.  
  203.     @Test
  204.     public void testFindByNameAndUsernameNonexistent() {
  205.         /*
  206.          * Test proverava ispravnost rada metode findByNameAndUsername repozitorijuma TenantRepository
  207.          * (pronalazenje stanara na imena i prezimena i korisnickog imena)
  208.          * u slucaju kada ne postoji nijedan stanar koji zadovoljava parametre pretrage
  209.          * */
  210.  
  211.         /*
  212.         ne postoji nijedan stanar koji zadovoljava pretragu sa parametrima:
  213.             ime = Sasa && prezime = Ivkovic && korisnicko ime = sasa
  214.          */
  215.         Tenant tenant = this.tenantRepository.findByNameAndUsername("Sasa", "Ivkovic", "sasa");
  216.  
  217.         assertNull(tenant);
  218.     }
  219.  
  220.     @Test
  221.     public void testFindAllByBuildingId() {
  222.         /*
  223.          * Test proverava ispravnost rada metode findAllByBuildingId repozitorijuma TenantRepository
  224.          * (pronalazenje stanara na osnovu ID-a zgrade)
  225.          * */
  226.         Building building = this.buildingRepository.findOne(this.building_id);
  227.  
  228.         // u zgradi sa ID-em = building_id zivi ukupno 3 stanara
  229.         Page<Tenant> tenants = this.tenantRepository.findAllByBuildingId(this.building_id, new PageRequest(1,3));
  230.  
  231.         for(Tenant t : tenants) {
  232.             assertEquals(building.getAddress(), t.getApartmentLiveIn().getBuilding().getAddress());
  233.         }
  234.     }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement