9e1e9e8ffc101da23f903c8b32bafdb1e588e9f2
[aai/sparky-be.git] / sparkybe-onap-service / src / test / java / org / onap / aai / sparky / synchronizer / TestSyncController.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017-2018 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.aai.sparky.synchronizer;
23
24 import java.util.Calendar;
25 import java.util.Date;
26 import java.util.concurrent.Semaphore;
27
28 import org.onap.aai.sparky.sync.IndexCleaner;
29 import org.onap.aai.sparky.sync.IndexSynchronizer;
30 import org.onap.aai.sparky.sync.IndexValidator;
31 import org.onap.aai.sparky.sync.SyncController;
32 import org.onap.aai.sparky.sync.SyncControllerImpl.SyncActions;
33 import org.onap.aai.sparky.sync.enumeration.OperationState;
34 import org.onap.aai.sparky.sync.enumeration.SynchronizerState;
35
36 public class TestSyncController implements SyncController {
37
38   private String controllerName;
39   private boolean periodic;
40   private SynchronizerState internalState;
41   private Semaphore gate;
42   
43   public TestSyncController(String name) {
44     this.controllerName = name;
45     this.internalState = SynchronizerState.IDLE;
46     this.gate = new Semaphore(1);
47   }
48   
49   
50   @Override
51   public String getControllerName() {
52     return this.controllerName;
53   }
54
55   @Override
56   public OperationState performAction(SyncActions requestedAction) {
57     
58     if (gate.tryAcquire()) {
59
60       internalState = SynchronizerState.PERFORMING_SYNCHRONIZATION;
61
62    //   System.out.println("performaAction = " + requestedAction);
63
64       System.out.println("Sync started with thread = " + Thread.currentThread().getName()
65           + " at date = " + new Date(Calendar.getInstance().getTimeInMillis()));
66
67       try {
68         Thread.sleep(10000L);
69       } catch (InterruptedException e) {
70         // TODO Auto-generated catch block
71         e.printStackTrace();
72       }
73
74       System.out.println("Sync done with thread = " + Thread.currentThread().getName()
75           + " at date = " + new Date(Calendar.getInstance().getTimeInMillis()));
76       internalState = SynchronizerState.IDLE;
77
78       System.out.println("Next Sync at = " + Thread.currentThread().getName()
79           + " at date = " + new Date(Calendar.getInstance().getTimeInMillis() + 30000L));
80
81       
82       gate.release();
83       
84       return OperationState.OK;
85     } else {
86       return OperationState.IGNORED_SYNC_NOT_IDLE;
87     }
88   }
89
90   @Override
91   public void registerEntitySynchronizer(IndexSynchronizer entitySynchronizer) {
92     // TODO Auto-generated method stub
93     
94   }
95
96   @Override
97   public void registerIndexValidator(IndexValidator indexValidator) {
98     // TODO Auto-generated method stub
99     
100   }
101
102   @Override
103   public void registerIndexCleaner(IndexCleaner indexCleaner) {
104     // TODO Auto-generated method stub
105     
106   }
107
108   @Override
109   public void shutdown() {
110     // TODO Auto-generated method stub
111    // System.out.println("shutdown");
112   }
113
114   @Override
115   public SynchronizerState getState() {
116  //   System.out.println("getState()");
117     return SynchronizerState.IDLE;
118   }
119
120   @Override
121   public long getDelayInMs() {
122     // TODO Auto-generated method stub
123     return 1000L;
124   }
125
126   @Override
127   public void setDelayInMs(long delayInMs) {
128     // TODO Auto-generated method stub
129     
130   }
131
132   @Override
133   public long getSyncFrequencyInMs() {
134     // TODO Auto-generated method stub
135     return 30000L;
136   }
137
138   @Override
139   public void setSyncFrequencyInMs(long syncFrequencyInMs) {
140     // TODO Auto-generated method stub
141     
142   }
143
144   @Override
145   public Date getSyncStartTime() {
146 //    System.out.println("getSyncStateTime()");
147     // TODO Auto-generated method stub
148     return null;
149   }
150
151   @Override
152   public void setSyncStartTime(Date syncStartTime) {
153     // TODO Auto-generated method stub
154     
155   }
156
157   @Override
158   public Date getLastExecutionDate() {
159     // TODO Auto-generated method stub
160     return null;
161   }
162
163   @Override
164   public void setLastExecutionDate(Date lastExecutionDate) {
165     // TODO Auto-generated method stub
166     
167   }
168
169   
170   @Override
171   public Calendar getCreationTime() {
172     // TODO Auto-generated method stub
173     return null;
174   }
175   
176   @Override
177   public String getNextSyncTime() {
178     // TODO Auto-generated method stub
179     return null;
180   }
181
182
183   @Override
184   public boolean isPeriodicSyncEnabled() {
185     // TODO Auto-generated method stub
186     return false;
187   }
188
189
190   @Override
191   public boolean isRunOnceSyncEnabled() {
192     // TODO Auto-generated method stub
193     return false;
194   }
195   
196   
197
198 }