repositoryTests.CustomerRepositoryTestNGTest.java Source code

Java tutorial

Introduction

Here is the source code for repositoryTests.CustomerRepositoryTestNGTest.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package repositoryTests;

import com.pharmacy.pharmacyweb.configuration.ConnectionConfig;
import com.pharmacy.pharmacyweb.domain.MedicalAid;
import com.pharmacy.pharmacyweb.domain.customers.Customer;
import com.pharmacy.pharmacyweb.domain.customers.PaymentMethod;
import com.pharmacy.pharmacyweb.repository.CustomerRepository;
import com.pharmacy.pharmacyweb.repository.MedicalAidRepository;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.testng.Assert;
import static org.testng.Assert.*;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

/**
 *
 * @author Luke
 */
public class CustomerRepositoryTestNGTest {
    public static ApplicationContext ctx;
    private Long id;
    private CustomerRepository repo;
    private static MedicalAid medicalAid;
    private static MedicalAidRepository medRepo;

    public CustomerRepositoryTestNGTest() {
    }

    // TODO add test methods here.
    // The methods must be annotated with annotation @Test. For example:
    //
    // @Test
    // public void hello() {}

    @BeforeClass
    public static void setUpClass() throws Exception {
        ctx = new AnnotationConfigApplicationContext(ConnectionConfig.class);
        medRepo = ctx.getBean(MedicalAidRepository.class);
        medicalAid = new MedicalAid.Builder().medicalAidName("eztv").medicalAidWorth(500000.0).build();
        medRepo.save(medicalAid);

    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @BeforeMethod
    public void setUpMethod() throws Exception {
    }

    @AfterMethod
    public void tearDownMethod() throws Exception {
    }

    @Test
    public void createCustomerTest() {
        repo = ctx.getBean(CustomerRepository.class);
        Customer cust = new Customer.Builder().id(0).name("Luke").surname("Davids").contactNumber("12345678900")
                .paymentMethod(new PaymentMethod.Builder().method(1).build()).age(22).medicalAid(medicalAid)
                .build();

        repo.save(cust);
        id = cust.getId();
        assertNotNull(cust);
    }

    @Test(dependsOnMethods = "createCustomerTest")
    public void readCustomerTest() {
        repo = ctx.getBean(CustomerRepository.class);
        Customer customer = repo.findOne(id);
        assertEquals(customer.getName(), "Luke");

    }

    @Test(dependsOnMethods = "readCustomerTest")
    private void updateCustomerTest() {
        repo = ctx.getBean(CustomerRepository.class);
        Customer cust = repo.findOne(id);
        Customer updatedPerson = new Customer.Builder().clone(cust).age(23).build();
        repo.save(updatedPerson);

        Customer newCustomer = repo.findOne(id);
        assertEquals(newCustomer.getName(), "Luke");

    }

    @Test(dependsOnMethods = "updateCustomerTest")
    private void deleteCustomer() {
        repo = ctx.getBean(CustomerRepository.class);
        Customer customer = repo.findOne(id);
        repo.delete(customer);

        Customer deletedCustomer = repo.findOne(id);
        assertNull(deletedCustomer);

    }
}