package org.croudtrip.account; import org.croudtrip.api.account.User; import org.croudtrip.api.account.Vehicle; import org.croudtrip.api.account.VehicleDescription; import org.croudtrip.db.VehicleDAO; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import mockit.Mocked; import mockit.Verifications; import mockit.integration.junit4.JMockit; @RunWith(JMockit.class) public class VehicleManagerTest { @Mocked VehicleDAO vehicleDAO; private VehicleManager vehicleManager; private final User owner = new User(0, "owner", null, null, null, false, null, null, null, 0); private final VehicleDescription vehicleDescription = new VehicleDescription("plate", "color", "type", 5); @Before public void setupManager() { vehicleManager = new VehicleManager(vehicleDAO); } @Test public void testAddVehicle() { final Vehicle vehicle = vehicleManager.addVehicle(owner, vehicleDescription); assertEquals(vehicle, vehicleDescription); new Verifications() {{ vehicleDAO.save(vehicle); }}; } @Test public void testUpdateVehicle() { final Vehicle oldVehicle = new Vehicle(0, "", "", "", 1, owner); final Vehicle updatedVehicle = vehicleManager.updateVehicle(owner, oldVehicle, vehicleDescription); assertEquals(updatedVehicle, vehicleDescription); new Verifications() {{ vehicleDAO.update(updatedVehicle); }}; } @Test public void testFindAllVehicles() { vehicleManager.findAllVehicles(owner); new Verifications() {{ vehicleDAO.findByUserId(owner.getId()); }}; } private void assertEquals(Vehicle vehicle, VehicleDescription vehicleDescription) { Assert.assertEquals(vehicle.getLicensePlate(), vehicleDescription.getLicensePlate()); Assert.assertEquals(vehicle.getColor(), vehicleDescription.getColor()); Assert.assertEquals(vehicle.getType(), vehicleDescription.getType()); Assert.assertEquals(vehicle.getCapacity(), vehicleDescription.getCapacity()); } }