samples/privilegedcreator/test/org/apidesign/privileged/use/MutexTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 334 0f3e13581901
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.privileged.use;
     2 
     3 import org.apidesign.privileged.api.Mutex;
     4 import org.junit.Test;
     5 import static org.junit.Assert.*;
     6 
     7 public class MutexTest {
     8     // BEGIN: mutex.init
     9     private static final Mutex.Privileged PRIVILEGED = new Mutex.Privileged();
    10     public static final Mutex MUTEX = new Mutex(PRIVILEGED);
    11     // END: mutex.init
    12 
    13     public MutexTest() {
    14     }
    15 
    16     /**
    17      * Test of withLock method, of class Mutex.
    18      */
    19     @Test
    20     public void readAccess() {
    21         // BEGIN: mutex.use
    22         class R implements Runnable {
    23             int cnt;
    24             
    25             public void run() {
    26                 cnt++;
    27             }
    28         }
    29         R r = new R();
    30         MUTEX.withLock(r);
    31         assertEquals("Counter increased", 1, r.cnt);
    32         // END: mutex.use
    33     }
    34     
    35     @Test
    36     public void usePrivileged() {
    37         int cnt = 0;
    38         // BEGIN: mutex.privileged
    39         try {
    40             PRIVILEGED.lock();
    41             // do the operation
    42             cnt++;
    43         } finally {
    44            PRIVILEGED.unlock();
    45         }
    46         assertEquals("Counter increased", 1, cnt);
    47         // END: mutex.privileged
    48         
    49     }
    50 
    51 }