Added Code
This commit is contained in:
		| @@ -10,6 +10,12 @@ | |||||||
| 	</parent> | 	</parent> | ||||||
| 	<artifactId>value-object</artifactId> | 	<artifactId>value-object</artifactId> | ||||||
| 	<dependencies> | 	<dependencies> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>com.google.guava</groupId> | ||||||
|  | 			<artifactId>guava-testlib</artifactId> | ||||||
|  | 			<version>19.0</version> | ||||||
|  | 			<scope>test</scope> | ||||||
|  | 		</dependency> | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<groupId>junit</groupId> | 			<groupId>junit</groupId> | ||||||
| 			<artifactId>junit</artifactId> | 			<artifactId>junit</artifactId> | ||||||
|   | |||||||
| @@ -1,13 +1,12 @@ | |||||||
| package com.iluwatar.value.object; | package com.iluwatar.value.object; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Hello world! |  * Hello world!. | ||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
| public class App  | public class App { | ||||||
| { |   public static void main(String[] args) { | ||||||
|     public static void main( String[] args ) |     HeroStat stat = HeroStat.valueOf(10, 5, 0); | ||||||
|     { |     System.out.println(stat.toString()); | ||||||
|         System.out.println( "Hello World!" ); |   } | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,91 @@ | |||||||
|  | package com.iluwatar.value.object; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * The Discount Coupon only discounts by percentage. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | public class HeroStat { | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   // stats for a hero | ||||||
|  |  | ||||||
|  |   private final int strength; | ||||||
|  |   private final int intelligence; | ||||||
|  |   private final int luck; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   // All constructors must be private. | ||||||
|  |   private HeroStat(int strength, int intelligence, int luck) { | ||||||
|  |     super(); | ||||||
|  |     this.strength = strength; | ||||||
|  |     this.intelligence = intelligence; | ||||||
|  |     this.luck = luck; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public static HeroStat valueOf(int strength, int intelligence, int luck) { | ||||||
|  |     return new HeroStat(strength, intelligence, luck); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public int getStrength() { | ||||||
|  |     return strength; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public int getIntelligence() { | ||||||
|  |     return intelligence; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public int getLuck() { | ||||||
|  |     return luck; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /* | ||||||
|  |    * recommended to provide a static factory method capable of creating an instance from the formal | ||||||
|  |    * string representation declared like this. public static Juice parse(String string) {} | ||||||
|  |    */ | ||||||
|  |  | ||||||
|  |   // toString, hashCode, equals | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public String toString() { | ||||||
|  |     return "HeroStat [strength=" + strength + ", intelligence=" + intelligence + ", luck=" + luck | ||||||
|  |         + "]"; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public int hashCode() { | ||||||
|  |     final int prime = 31; | ||||||
|  |     int result = 1; | ||||||
|  |     result = prime * result + intelligence; | ||||||
|  |     result = prime * result + luck; | ||||||
|  |     result = prime * result + strength; | ||||||
|  |     return result; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public boolean equals(Object obj) { | ||||||
|  |     if (this == obj) { | ||||||
|  |       return true; | ||||||
|  |     } | ||||||
|  |     if (obj == null) { | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     if (getClass() != obj.getClass()) { | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     HeroStat other = (HeroStat) obj; | ||||||
|  |     if (intelligence != other.intelligence) { | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     if (luck != other.luck) { | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     if (strength != other.strength) { | ||||||
|  |       return false; | ||||||
|  |     } | ||||||
|  |     return true; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   // the clone() method should not be public | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| package com.iluwatar.value.object; |  | ||||||
|  |  | ||||||
| import junit.framework.Test; |  | ||||||
| import junit.framework.TestCase; |  | ||||||
| import junit.framework.TestSuite; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Unit test for simple App. |  | ||||||
|  */ |  | ||||||
| public class AppTest  |  | ||||||
|     extends TestCase |  | ||||||
| { |  | ||||||
|     /** |  | ||||||
|      * Create the test case |  | ||||||
|      * |  | ||||||
|      * @param testName name of the test case |  | ||||||
|      */ |  | ||||||
|     public AppTest( String testName ) |  | ||||||
|     { |  | ||||||
|         super( testName ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * @return the suite of tests being tested |  | ||||||
|      */ |  | ||||||
|     public static Test suite() |  | ||||||
|     { |  | ||||||
|         return new TestSuite( AppTest.class ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * Rigourous Test :-) |  | ||||||
|      */ |  | ||||||
|     public void testApp() |  | ||||||
|     { |  | ||||||
|         assertTrue( true ); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -0,0 +1,23 @@ | |||||||
|  | package com.iluwatar.value.object; | ||||||
|  |  | ||||||
|  | import com.google.common.testing.EqualsTester; | ||||||
|  |  | ||||||
|  | import org.junit.Test; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Unit test for HeroStat. | ||||||
|  |  */ | ||||||
|  | public class HeroStatTest { | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * Tester for equals() and hashCode() methods of a class. | ||||||
|  |    * @see http://www.javadoc.io/doc/com.google.guava/guava-testlib/19.0 | ||||||
|  |    */ | ||||||
|  |   @Test | ||||||
|  |   public void testEquals() { | ||||||
|  |     HeroStat heroStatA = HeroStat.valueOf(3, 9, 2); | ||||||
|  |     HeroStat heroStatB = HeroStat.valueOf(3, 9, 2); | ||||||
|  |     new EqualsTester().addEqualityGroup(heroStatA, heroStatB).testEquals(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user