From 65a9a790d73209b7f855bbce15f6692093ce4e55 Mon Sep 17 00:00:00 2001 From: = Date: Sat, 17 Oct 2020 20:23:00 +0530 Subject: [PATCH 1/5] Added AnimalFactory to illustrate Animal Factory Design Pattern --- build.gradle | 6 ++ .../factorypattern/AnimalFactory.java | 19 +++++ .../factorypattern/AnimalFactoryRunner.java | 24 ++++++ .../factorypattern/animal/Animal.java | 9 +++ .../factorypattern/animal/AnimalEnum.java | 23 ++++++ .../factorypattern/animal/AnimalType.java | 9 +++ .../factorypattern/animal/Dog.java | 17 ++++ .../factorypattern/animal/Eagle.java | 16 ++++ .../factorypattern/animal/Earthworm.java | 16 ++++ .../factorypattern/animal/Frog.java | 16 ++++ .../factorypattern/animal/Human.java | 16 ++++ .../factorypattern/animal/Salmon.java | 17 ++++ .../factorypattern/animal/Snake.java | 17 ++++ .../factorypattern/AnimalFactoryTest.java | 77 +++++++++++++++++++ 14 files changed, 282 insertions(+) create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Animal.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalEnum.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalType.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Dog.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Eagle.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Earthworm.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Frog.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Human.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Salmon.java create mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Snake.java create mode 100644 src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java diff --git a/build.gradle b/build.gradle index 9f6d810..c31d53d 100644 --- a/build.gradle +++ b/build.gradle @@ -14,6 +14,8 @@ repositories { } dependencies { + implementation 'junit:junit:4.12' + // https://mvnrepository.com/artifact/org.mockito/mockito-core testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.5.13' @@ -64,3 +66,7 @@ checkstyleMain { checkstyleTest { source ='src/test/java' } + +test { + useJUnitPlatform() +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java new file mode 100644 index 0000000..480b768 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java @@ -0,0 +1,19 @@ +package com.ordestiny.tdd.designpattern.factorypattern; + +import com.ordestiny.tdd.designpattern.factorypattern.animal.Animal; +import com.ordestiny.tdd.designpattern.factorypattern.animal.AnimalEnum; + +import java.security.InvalidParameterException; +import java.text.MessageFormat; + +/** + * @author Rachit Parikh + */ +public class AnimalFactory { + public static Animal getAnimal(AnimalEnum animalEnum) { + if(animalEnum.getInstance() == null){ + throw new InvalidParameterException(); + } + return animalEnum.getInstance(); + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java new file mode 100644 index 0000000..c61a6db --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java @@ -0,0 +1,24 @@ +package com.ordestiny.tdd.designpattern.factorypattern; + +import com.ordestiny.tdd.designpattern.factorypattern.animal.Animal; +import com.ordestiny.tdd.designpattern.factorypattern.animal.AnimalEnum; + +/** + * @author Rachit Parikh + */ +public class AnimalFactoryRunner { + public static void main(String[] args) { + + Animal dog = null; + + // If the given animal is not present in the enum, it throws an exception + try { + dog = AnimalFactory.getAnimal(AnimalEnum.DOG); + System.out.println(AnimalEnum.DOG.toString() + " has " + dog.numberOfLegs() + " legs"); + System.out.println(AnimalEnum.DOG.toString() + " is a " + dog.typeOfAnimal()); + } catch (Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Animal.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Animal.java new file mode 100644 index 0000000..07f9f2b --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Animal.java @@ -0,0 +1,9 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public interface Animal { + int numberOfLegs(); + AnimalType typeOfAnimal(); +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalEnum.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalEnum.java new file mode 100644 index 0000000..911f611 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalEnum.java @@ -0,0 +1,23 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +import java.security.InvalidParameterException; +import java.text.MessageFormat; +import java.util.function.Supplier; + +/** + * @author Rachit Parikh + */ +public enum AnimalEnum { + DOG(Dog::new), HUMAN(Human::new), SNAKE(Snake::new), FROG(Frog::new), + EAGLE(Eagle::new), SALMON(Salmon::new), EARTHWORM(Earthworm::new); + + private Supplier initiator; + + public Animal getInstance(){ + return initiator.get(); + } + + AnimalEnum(Supplier initiator){ + this.initiator = initiator; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalType.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalType.java new file mode 100644 index 0000000..d6bcf6a --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/AnimalType.java @@ -0,0 +1,9 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public enum AnimalType { + MAMMAL, REPTILE, AMPHIBIAN, + BIRD, INVERTEBRATE, FISH; +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Dog.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Dog.java new file mode 100644 index 0000000..432a1b0 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Dog.java @@ -0,0 +1,17 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Dog implements Animal { + + @Override + public int numberOfLegs() { + return 4; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.MAMMAL; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Eagle.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Eagle.java new file mode 100644 index 0000000..d6ed6b8 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Eagle.java @@ -0,0 +1,16 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Eagle implements Animal{ + @Override + public int numberOfLegs() { + return 2; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.BIRD; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Earthworm.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Earthworm.java new file mode 100644 index 0000000..8379582 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Earthworm.java @@ -0,0 +1,16 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Earthworm implements Animal{ + @Override + public int numberOfLegs() { + return 0; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.INVERTEBRATE; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Frog.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Frog.java new file mode 100644 index 0000000..563be17 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Frog.java @@ -0,0 +1,16 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Frog implements Animal { + @Override + public int numberOfLegs() { + return 2; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.AMPHIBIAN; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Human.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Human.java new file mode 100644 index 0000000..8910077 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Human.java @@ -0,0 +1,16 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Human implements Animal{ + @Override + public int numberOfLegs() { + return 2; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.MAMMAL; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Salmon.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Salmon.java new file mode 100644 index 0000000..e6021e0 --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Salmon.java @@ -0,0 +1,17 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Salmon implements Animal { + + @Override + public int numberOfLegs() { + return 0; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.FISH; + } +} diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Snake.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Snake.java new file mode 100644 index 0000000..dbaec7b --- /dev/null +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/animal/Snake.java @@ -0,0 +1,17 @@ +package com.ordestiny.tdd.designpattern.factorypattern.animal; + +/** + * @author Rachit Parikh + */ +public class Snake implements Animal { + + @Override + public int numberOfLegs() { + return 0; + } + + @Override + public AnimalType typeOfAnimal() { + return AnimalType.REPTILE; + } +} diff --git a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java new file mode 100644 index 0000000..f0d7d96 --- /dev/null +++ b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java @@ -0,0 +1,77 @@ +package com.ordestiny.tdd.designpattern.factorypattern; + +import com.ordestiny.tdd.designpattern.factorypattern.animal.*; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * @author Rachit Parikh + */ + +public class AnimalFactoryTest { + + Animal animal; + + @Test + public void checkDog() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.DOG); + assertEquals(animal.getClass(), Dog.class); + assertEquals(animal.numberOfLegs(), 4); + assertEquals(animal.typeOfAnimal(), AnimalType.MAMMAL); + } + + @Test + public void checkHuman() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.HUMAN); + assertEquals(animal.getClass(), Human.class); + assertEquals(animal.numberOfLegs(), 2); + assertEquals(animal.typeOfAnimal(), AnimalType.MAMMAL); + } + + @Test + public void checkSalmon() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.SALMON); + assertEquals(animal.getClass(), Salmon.class); + assertEquals(animal.numberOfLegs(), 0); + assertEquals(animal.typeOfAnimal(), AnimalType.FISH); + } + + @Test + public void checkSnake() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.SNAKE); + assertEquals(animal.getClass(), Snake.class); + assertEquals(animal.numberOfLegs(), 0); + assertEquals(animal.typeOfAnimal(), AnimalType.REPTILE); + } + + @Test + public void checkEarthworm() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.EARTHWORM); + assertEquals(animal.getClass(), Earthworm.class); + assertEquals(animal.numberOfLegs(), 0); + assertEquals(animal.typeOfAnimal(), AnimalType.INVERTEBRATE); + } + + @Test + public void checkEagle() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.EAGLE); + assertEquals(animal.getClass(), Eagle.class); + assertEquals(animal.numberOfLegs(), 2); + assertEquals(animal.typeOfAnimal(), AnimalType.BIRD); + } + + @Test + public void checkFrog() throws Exception{ + animal = AnimalFactory.getAnimal(AnimalEnum.FROG); + assertEquals(animal.getClass(), Frog.class); + assertEquals(animal.numberOfLegs(), 2); + assertEquals(animal.typeOfAnimal(), AnimalType.AMPHIBIAN); + } + + @Test + public void checkAnimalFactory(){ + AnimalFactory animalFactory = new AnimalFactory(); + assertEquals(animalFactory.getClass(), AnimalFactory.class); + } +} From 610a6c3b4673f56a1dec39ab6c13ecd26ec42ef0 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 22 Oct 2020 10:47:16 +0530 Subject: [PATCH 2/5] Made the required changes based on the last PR suggestions --- build.gradle | 5 ----- .../designpattern/factorypattern/AnimalFactoryTest.java | 8 +++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index c31d53d..7544685 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,6 @@ repositories { } dependencies { - implementation 'junit:junit:4.12' // https://mvnrepository.com/artifact/org.mockito/mockito-core testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.5.13' @@ -66,7 +65,3 @@ checkstyleMain { checkstyleTest { source ='src/test/java' } - -test { - useJUnitPlatform() -} diff --git a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java index f0d7d96..e862378 100644 --- a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java +++ b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java @@ -13,6 +13,9 @@ public class AnimalFactoryTest { Animal animal; + // CheckX test classes will check whether the factory method is able to create X + // It will also test if it working correctly, i.e whether the data returned by the class is correct or not + @Test public void checkDog() throws Exception{ animal = AnimalFactory.getAnimal(AnimalEnum.DOG); @@ -69,9 +72,4 @@ public void checkFrog() throws Exception{ assertEquals(animal.typeOfAnimal(), AnimalType.AMPHIBIAN); } - @Test - public void checkAnimalFactory(){ - AnimalFactory animalFactory = new AnimalFactory(); - assertEquals(animalFactory.getClass(), AnimalFactory.class); - } } From 61be2fe646ef13368ca5ce8d819fff687c8fd84e Mon Sep 17 00:00:00 2001 From: = Date: Thu, 22 Oct 2020 11:19:18 +0530 Subject: [PATCH 3/5] Delete the factory runner --- .../factorypattern/AnimalFactoryRunner.java | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java deleted file mode 100644 index c61a6db..0000000 --- a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryRunner.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ordestiny.tdd.designpattern.factorypattern; - -import com.ordestiny.tdd.designpattern.factorypattern.animal.Animal; -import com.ordestiny.tdd.designpattern.factorypattern.animal.AnimalEnum; - -/** - * @author Rachit Parikh - */ -public class AnimalFactoryRunner { - public static void main(String[] args) { - - Animal dog = null; - - // If the given animal is not present in the enum, it throws an exception - try { - dog = AnimalFactory.getAnimal(AnimalEnum.DOG); - System.out.println(AnimalEnum.DOG.toString() + " has " + dog.numberOfLegs() + " legs"); - System.out.println(AnimalEnum.DOG.toString() + " is a " + dog.typeOfAnimal()); - } catch (Exception e) { - e.printStackTrace(); - } - - } -} From f1b2ceed29aedfb9ac6c6781146bbd3e213f09c1 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 23 Oct 2020 00:46:20 +0530 Subject: [PATCH 4/5] Added new tests and modified the AnimalFactory method so that it can take string as input instead of enum --- .../factorypattern/AnimalFactory.java | 3 +- .../factorypattern/AnimalFactoryTest.java | 34 +++++++++++++++---- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java index 480b768..bcbb448 100644 --- a/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java +++ b/src/main/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactory.java @@ -10,7 +10,8 @@ * @author Rachit Parikh */ public class AnimalFactory { - public static Animal getAnimal(AnimalEnum animalEnum) { + public static Animal getAnimal(String animal) { + AnimalEnum animalEnum = AnimalEnum.valueOf(animal); if(animalEnum.getInstance() == null){ throw new InvalidParameterException(); } diff --git a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java index e862378..dc7943e 100644 --- a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java +++ b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java @@ -18,7 +18,7 @@ public class AnimalFactoryTest { @Test public void checkDog() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.DOG); + animal = AnimalFactory.getAnimal("Dog"); assertEquals(animal.getClass(), Dog.class); assertEquals(animal.numberOfLegs(), 4); assertEquals(animal.typeOfAnimal(), AnimalType.MAMMAL); @@ -26,7 +26,7 @@ public void checkDog() throws Exception{ @Test public void checkHuman() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.HUMAN); + animal = AnimalFactory.getAnimal("HUMAN"); assertEquals(animal.getClass(), Human.class); assertEquals(animal.numberOfLegs(), 2); assertEquals(animal.typeOfAnimal(), AnimalType.MAMMAL); @@ -34,7 +34,7 @@ public void checkHuman() throws Exception{ @Test public void checkSalmon() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.SALMON); + animal = AnimalFactory.getAnimal("SALMON"); assertEquals(animal.getClass(), Salmon.class); assertEquals(animal.numberOfLegs(), 0); assertEquals(animal.typeOfAnimal(), AnimalType.FISH); @@ -42,7 +42,7 @@ public void checkSalmon() throws Exception{ @Test public void checkSnake() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.SNAKE); + animal = AnimalFactory.getAnimal("SNAKE"); assertEquals(animal.getClass(), Snake.class); assertEquals(animal.numberOfLegs(), 0); assertEquals(animal.typeOfAnimal(), AnimalType.REPTILE); @@ -50,7 +50,7 @@ public void checkSnake() throws Exception{ @Test public void checkEarthworm() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.EARTHWORM); + animal = AnimalFactory.getAnimal("EARTHWORM"); assertEquals(animal.getClass(), Earthworm.class); assertEquals(animal.numberOfLegs(), 0); assertEquals(animal.typeOfAnimal(), AnimalType.INVERTEBRATE); @@ -58,7 +58,7 @@ public void checkEarthworm() throws Exception{ @Test public void checkEagle() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.EAGLE); + animal = AnimalFactory.getAnimal("EAGLE"); assertEquals(animal.getClass(), Eagle.class); assertEquals(animal.numberOfLegs(), 2); assertEquals(animal.typeOfAnimal(), AnimalType.BIRD); @@ -66,10 +66,30 @@ public void checkEagle() throws Exception{ @Test public void checkFrog() throws Exception{ - animal = AnimalFactory.getAnimal(AnimalEnum.FROG); + animal = AnimalFactory.getAnimal("FROG"); assertEquals(animal.getClass(), Frog.class); assertEquals(animal.numberOfLegs(), 2); assertEquals(animal.typeOfAnimal(), AnimalType.AMPHIBIAN); } + @Test + public void checkBat() throws Exception{ + try { + animal = AnimalFactory.getAnimal("BAT"); + } + catch (Exception e) { + assertEquals(e.getClass(), IllegalArgumentException.class); + } + } + + @Test + public void checkTelevision() throws Exception{ + try{ + animal = AnimalFactory.getAnimal("TELEVISION"); + } + catch (Exception e){ + assertEquals(e.getClass(), IllegalArgumentException.class); + } + } + } From 7580081f02a26ef063e251659f76c99bd908dcc6 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 23 Oct 2020 00:50:38 +0530 Subject: [PATCH 5/5] Added new tests and modified the AnimalFactory method so that it can take string as input instead of enum --- .../tdd/designpattern/factorypattern/AnimalFactoryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java index dc7943e..7c0aeb4 100644 --- a/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java +++ b/src/test/java/com/ordestiny/tdd/designpattern/factorypattern/AnimalFactoryTest.java @@ -18,7 +18,7 @@ public class AnimalFactoryTest { @Test public void checkDog() throws Exception{ - animal = AnimalFactory.getAnimal("Dog"); + animal = AnimalFactory.getAnimal("DOG"); assertEquals(animal.getClass(), Dog.class); assertEquals(animal.numberOfLegs(), 4); assertEquals(animal.typeOfAnimal(), AnimalType.MAMMAL);