[CCSDK-245] RA: Refactor RA to make it generic
[ccsdk/sli/adaptors.git] / resource-assignment / provider / src / test / java / jtest / org / onap / ccsdk / sli / adaptors / ra / TestLockHelper.java
1 package jtest.org.onap.ccsdk.sli.adaptors.ra;
2
3 import org.junit.FixMethodOrder;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.junit.runners.MethodSorters;
7 import org.onap.ccsdk.sli.adaptors.lock.comp.LockHelper;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.test.context.ContextConfiguration;
12 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
13
14 @RunWith(SpringJUnit4ClassRunner.class)
15 @ContextConfiguration(locations = { "classpath:test-context.xml" })
16 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
17 public class TestLockHelper {
18
19     private static final Logger log = LoggerFactory.getLogger(TestLockHelper.class);
20
21     @Autowired
22     private LockHelper lockHelper;
23
24     @Test
25     public void test1() throws Exception {
26         LockThread t1 = new LockThread("req1");
27         LockThread t2 = new LockThread("req2");
28         LockThread t3 = new LockThread("req3");
29
30         t1.start();
31         t2.start();
32         t3.start();
33
34         t1.join();
35         t2.join();
36         t3.join();
37     }
38
39     private class LockThread extends Thread {
40         private String requester;
41
42         public LockThread(String requester) {
43             this.requester = requester;
44         }
45
46         @Override
47         public void run() {
48             lockHelper.lock("resource1", requester, 20);
49
50             try {
51                 Thread.sleep(500);
52             } catch (InterruptedException e) {
53                 log.warn("Thread interrupted: " + e.getMessage(), e);
54             }
55
56             lockHelper.unlock("resource1", false);
57         }
58     }
59 }