samples/sidemeanings/test/org/apidesign/sidemeanings/test/MixedTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 263 7e8e995065c5
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
     1 package org.apidesign.sidemeanings.test;
     2 
     3 
     4 import org.apidesign.sidemeanings.MixedClass;
     5 import org.apidesign.sidemeanings.NonMixed;
     6 import org.apidesign.sidemeanings.NonMixedFactory;
     7 import org.apidesign.sidemeanings.NonMixedFactory.Callback;
     8 import org.junit.After;
     9 import org.junit.Before;
    10 import org.junit.Test;
    11 import static org.junit.Assert.*;
    12 
    13 public class MixedTest {
    14 
    15     public MixedTest() {
    16     }
    17 
    18     @Before
    19     public void setUp() {
    20     }
    21 
    22     @After
    23     public void tearDown() {
    24     }
    25 
    26     // BEGIN: sidemeanings.Mixed.Use
    27     @Test public void useOfClassWithMixedMeanings() {
    28         class AddFiveMixedCounter extends MixedClass {
    29             @Override
    30             protected int toBeImplementedBySubclass() {
    31                 toBeCalledBySubclass();
    32                 return 5;
    33             }
    34         }
    35         AddFiveMixedCounter add5 = new AddFiveMixedCounter();
    36         assertEquals("5/1 = 5", 5, add5.apiForClients());
    37         assertEquals("10/2 = 5", 5, add5.apiForClients());
    38         assertEquals("15/3 = 5", 5, add5.apiForClients());
    39     }
    40     // END: sidemeanings.Mixed.Use
    41     
    42     // BEGIN: sidemeanings.Mixed.Clean.Use
    43     @Test public void useWithoutMixedMeanings() {
    44         class AddFiveMixedCounter implements NonMixedFactory.Provider {
    45             private Callback callback;
    46             
    47             public int toBeImplementedBySubclass() {
    48                 callback.toBeCalledBySubclass();
    49                 return 5;
    50             }
    51 
    52             public void initialize(Callback c) {
    53                 callback = c;
    54             }
    55         }
    56         NonMixed add5 = NonMixedFactory.create(new AddFiveMixedCounter());
    57         assertEquals("5/1 = 5", 5, add5.apiForClients());
    58         assertEquals("10/2 = 5", 5, add5.apiForClients());
    59         assertEquals("15/3 = 5", 5, add5.apiForClients());
    60     }
    61     // END: sidemeanings.Mixed.Clean.Use
    62 }
    63