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
jtulach@208
     1
package org.apidesign.sidemeanings.test;
jtulach@208
     2
jtulach@208
     3
jtulach@208
     4
import org.apidesign.sidemeanings.MixedClass;
jtulach@208
     5
import org.apidesign.sidemeanings.NonMixed;
jtulach@326
     6
import org.apidesign.sidemeanings.NonMixedFactory;
jtulach@326
     7
import org.apidesign.sidemeanings.NonMixedFactory.Callback;
jtulach@208
     8
import org.junit.After;
jtulach@208
     9
import org.junit.Before;
jtulach@208
    10
import org.junit.Test;
jtulach@208
    11
import static org.junit.Assert.*;
jtulach@208
    12
jtulach@208
    13
public class MixedTest {
jtulach@208
    14
jtulach@208
    15
    public MixedTest() {
jtulach@208
    16
    }
jtulach@208
    17
jtulach@208
    18
    @Before
jtulach@208
    19
    public void setUp() {
jtulach@208
    20
    }
jtulach@208
    21
jtulach@208
    22
    @After
jtulach@208
    23
    public void tearDown() {
jtulach@208
    24
    }
jtulach@208
    25
jtulach@208
    26
    // BEGIN: sidemeanings.Mixed.Use
jtulach@208
    27
    @Test public void useOfClassWithMixedMeanings() {
jtulach@208
    28
        class AddFiveMixedCounter extends MixedClass {
jtulach@208
    29
            @Override
jtulach@208
    30
            protected int toBeImplementedBySubclass() {
jtulach@208
    31
                toBeCalledBySubclass();
jtulach@208
    32
                return 5;
jtulach@208
    33
            }
jtulach@208
    34
        }
jtulach@208
    35
        AddFiveMixedCounter add5 = new AddFiveMixedCounter();
jtulach@208
    36
        assertEquals("5/1 = 5", 5, add5.apiForClients());
jtulach@208
    37
        assertEquals("10/2 = 5", 5, add5.apiForClients());
jtulach@208
    38
        assertEquals("15/3 = 5", 5, add5.apiForClients());
jtulach@208
    39
    }
jtulach@208
    40
    // END: sidemeanings.Mixed.Use
jtulach@208
    41
    
jtulach@208
    42
    // BEGIN: sidemeanings.Mixed.Clean.Use
jtulach@208
    43
    @Test public void useWithoutMixedMeanings() {
jtulach@326
    44
        class AddFiveMixedCounter implements NonMixedFactory.Provider {
jtulach@208
    45
            private Callback callback;
jtulach@208
    46
            
jtulach@208
    47
            public int toBeImplementedBySubclass() {
jtulach@208
    48
                callback.toBeCalledBySubclass();
jtulach@208
    49
                return 5;
jtulach@208
    50
            }
jtulach@208
    51
jtulach@208
    52
            public void initialize(Callback c) {
jtulach@208
    53
                callback = c;
jtulach@208
    54
            }
jtulach@208
    55
        }
jtulach@326
    56
        NonMixed add5 = NonMixedFactory.create(new AddFiveMixedCounter());
jtulach@208
    57
        assertEquals("5/1 = 5", 5, add5.apiForClients());
jtulach@208
    58
        assertEquals("10/2 = 5", 5, add5.apiForClients());
jtulach@208
    59
        assertEquals("15/3 = 5", 5, add5.apiForClients());
jtulach@208
    60
    }
jtulach@208
    61
    // END: sidemeanings.Mixed.Clean.Use
jtulach@208
    62
}
jtulach@208
    63