samples/privilegedcreator/test/api/MutexTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:28 +0200
changeset 71 a9bd40166b60
child 330 be82436a7a8b
permissions -rw-r--r--
Fixed "Give creator more rights"
jtulach@71
     1
package api;
jtulach@71
     2
jtulach@71
     3
import org.junit.After;
jtulach@71
     4
import org.junit.AfterClass;
jtulach@71
     5
import org.junit.Before;
jtulach@71
     6
import org.junit.BeforeClass;
jtulach@71
     7
import org.junit.Test;
jtulach@71
     8
import static org.junit.Assert.*;
jtulach@71
     9
jtulach@71
    10
public class MutexTest {
jtulach@71
    11
    // BEGIN: mutex.init
jtulach@71
    12
    private static final Mutex.Privileged PRIVILEGED = new Mutex.Privileged();
jtulach@71
    13
    public static final Mutex MUTEX = new Mutex(PRIVILEGED);
jtulach@71
    14
    // END: mutex.init
jtulach@71
    15
jtulach@71
    16
    public MutexTest() {
jtulach@71
    17
    }
jtulach@71
    18
jtulach@71
    19
    @BeforeClass
jtulach@71
    20
    public static void setUpClass() throws Exception {
jtulach@71
    21
    }
jtulach@71
    22
jtulach@71
    23
    @AfterClass
jtulach@71
    24
    public static void tearDownClass() throws Exception {
jtulach@71
    25
    }
jtulach@71
    26
jtulach@71
    27
    @Before
jtulach@71
    28
    public void setUp() {
jtulach@71
    29
    }
jtulach@71
    30
jtulach@71
    31
    @After
jtulach@71
    32
    public void tearDown() {
jtulach@71
    33
    }
jtulach@71
    34
jtulach@71
    35
    /**
jtulach@71
    36
     * Test of readAccess method, of class Mutex.
jtulach@71
    37
     */
jtulach@71
    38
    @Test
jtulach@71
    39
    public void readAccess() {
jtulach@71
    40
        class R implements Runnable {
jtulach@71
    41
            int cnt;
jtulach@71
    42
            
jtulach@71
    43
            public void run() {
jtulach@71
    44
                cnt++;
jtulach@71
    45
            }
jtulach@71
    46
        }
jtulach@71
    47
        R r = new R();
jtulach@71
    48
        Mutex instance = new Mutex();
jtulach@71
    49
        instance.readAccess(r);
jtulach@71
    50
        assertEquals("One call to runnable", 1, r.cnt);
jtulach@71
    51
    }
jtulach@71
    52
    
jtulach@71
    53
    @Test
jtulach@71
    54
    public void usePrivileged() {
jtulach@71
    55
        Mutex.Privileged lock = new Mutex.Privileged();
jtulach@71
    56
        Mutex mutex = new Mutex(lock);
jtulach@71
    57
jtulach@71
    58
        // BEGIN: mutex.privileged
jtulach@71
    59
        lock.enterReadAccess();
jtulach@71
    60
        try {
jtulach@71
    61
          // do the operation
jtulach@71
    62
        } finally {
jtulach@71
    63
           lock.exitReadAccess();
jtulach@71
    64
        }
jtulach@71
    65
        // END: mutex.privileged
jtulach@71
    66
        
jtulach@71
    67
    }
jtulach@71
    68
jtulach@71
    69
}