@Test
 public void usesFreebiesForSubtraits() throws Exception {
   model.getTrait(NON_FAVORED1).getCreationModel().setValue(1);
   BasicTrait subTrait = new BasicTrait("Tum"); // $NON-NLS-1$
   subTrait.getCreationModel().setValue(2);
   model.addSubTrait(NON_FAVORED1, subTrait);
   assertEquals(2, handler.getPoints(characterId, 5));
 }
 @Test
 public void returnsPointsSpentOnFavoredAboveFavoredCredit() throws Exception {
   model.getTrait(FAVORED1).getCreationModel().setValue(FAVORED_CREDIT);
   model.getTrait(FAVORED2).getCreationModel().setValue(2);
   assertEquals(2, handler.getPoints(characterId, 3));
 }
 @Test
 public void returnsZeroPointsIfOnlyFavoredCreditIsSpentOnFavored() throws Exception {
   model.getTrait(FAVORED1).getCreationModel().setValue(FAVORED_CREDIT);
   assertEquals(0, handler.getPoints(characterId, 3));
 }
 @Test
 public void returnsThreeForUnfavoredTraitExceedingThree() throws Exception {
   model.getTrait(NON_FAVORED1).getCreationModel().setValue(4);
   assertEquals(3, handler.getPoints(characterId, 5));
 }
 @Test
 public void returnsCreditValueForExceedingUnfavoredSpentSum() throws Exception {
   model.getTrait(NON_FAVORED1).getCreationModel().setValue(3);
   assertEquals(2, handler.getPoints(characterId, 2));
 }
 @Test
 public void returnsLowSumUnfavoredAttributeValues() throws Exception {
   model.getTrait(NON_FAVORED1).getCreationModel().setValue(3);
   model.getTrait(NON_FAVORED2).getCreationModel().setValue(1);
   assertEquals(4, handler.getPoints(characterId, 5));
 }
 @Test
 public void returnsZeroPointsForUnmodifiedTraits() throws Exception {
   assertEquals(0, handler.getPoints(characterId, 5));
 }