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