diff --git a/src/main/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStore.java b/src/main/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStore.java index d9499636f..3d1264d6e 100644 --- a/src/main/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStore.java +++ b/src/main/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStore.java @@ -78,6 +78,7 @@ public class NewOwnerStore { if(iterator.hasNext()) { Owner oldOwner = iterator.next(); if(id != oldOwner.getId() || !ownerStore.get(id).equals(oldOwner)) { + ownerStore.put(id, StaticOwner.convertToStaticOwner(oldOwner)); inconsistencies++; violation(id, StaticOwner.convertToStaticOwner(oldOwner), ownerStore.get(id)); } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 4cb4a0299..9ee83eb3a 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -105,6 +105,7 @@ class OwnerController { } } + @GetMapping("/owners/{ownerId}/edit") public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) { Owner owner = this.owners.findById(ownerId); diff --git a/src/test/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStoreTest.java b/src/test/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStoreTest.java index 31b59ed88..fc8dae8fb 100644 --- a/src/test/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStoreTest.java +++ b/src/test/java/org/springframework/samples/petclinic/newDataStore/NewOwnerStoreTest.java @@ -7,13 +7,12 @@ package org.springframework.samples.petclinic.newDataStore; import java.util.*; import java.util.regex.Pattern; -import java.util.Iterator; -import java.util.Map; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.samples.petclinic.owner.Owner; @@ -22,6 +21,8 @@ import org.springframework.samples.petclinic.owner.StaticOwner; import org.springframework.test.context.junit4.SpringRunner; import static org.junit.Assert.*; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.doReturn; /** * @author Gibran @@ -30,22 +31,30 @@ import static org.junit.Assert.*; @DataJpaTest public class NewOwnerStoreTest { + private static final int TEST_OWNER_ID = 1; + @Autowired - OwnerRepository owners; + OwnerRepository ownerRepository; NewOwnerStore testOwnerStore; - HashMap ownerStore; + Map ownerStore; - - @Mock - Owner mockOwner; + Owner owner; @Before public void setup() { - testOwnerStore = NewOwnerStore.getInstance(owners); + testOwnerStore = NewOwnerStore.getInstance(ownerRepository); testOwnerStore.forklift(); ownerStore = testOwnerStore.getStore(); + MockitoAnnotations.initMocks(this); + doReturn(TEST_OWNER_ID).when(owner).getId(); + doReturn("John").when(owner).getFirstName(); + doReturn("Doe").when(owner).getLastName(); + doReturn("123 Cucumber Lane").when(owner).getAddress(); + doReturn("Placeville").when(owner).getCity(); + doReturn("1234567890").when(owner).getTelephone(); + given(this.ownerRepository.findById(TEST_OWNER_ID)).willReturn(owner); } @Test @@ -60,10 +69,10 @@ public class NewOwnerStoreTest { @Test public void testShadowRead() { - testOwnerStore = NewOwnerStore.getInstance(owners); + testOwnerStore = NewOwnerStore.getInstance(ownerRepository); testOwnerStore.forklift(); - Collection results = this.owners.findByLastName(""); + Collection results = this.ownerRepository.findByLastName(""); int inconsistencies = compareResults(results, ""); @@ -124,16 +133,16 @@ public class NewOwnerStoreTest { } @Test - public void checkShadowWrite() { - testOwnerStore = NewOwnerStore.getInstance(owners); + public void testShadowWrite() { + testOwnerStore = NewOwnerStore.getInstance(ownerRepository); - //make sure that inconsisties are recorded and fixed - testOwnerStore.testPutInOldDatastoreOnly(mockOwner); - assertEquals(1, testOwnerStore.checkConsistency()); - assertEquals(0, testOwnerStore.checkConsistency()); + //make sure that inconsistencies are recorded and fixed + testOwnerStore.testPutInOldDatastoreOnly(owner); + assertEquals(1, testOwnerStore.checkConsistency()); + assertEquals(0, testOwnerStore.checkConsistency()); - //make sure that any changes written to old database are also written to new database - testOwnerStore.save(mockOwner); - assertEquals(0, testOwnerStore.checkConsistency()); + //make sure that any changes written to old database are also written to new database + testOwnerStore.save(owner); + assertEquals(0, testOwnerStore.checkConsistency()); } }