2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.versioning.impl;
24 import org.mockito.ArgumentCaptor;
25 import org.mockito.Captor;
26 import org.mockito.InjectMocks;
27 import org.mockito.Mock;
28 import org.mockito.MockitoAnnotations;
29 import org.openecomp.sdc.common.errors.CoreException;
30 import org.openecomp.sdc.versioning.dao.VersionInfoDao;
31 import org.openecomp.sdc.versioning.dao.VersionInfoDeletedDao;
32 import org.openecomp.sdc.versioning.dao.VersionableEntityDao;
33 import org.openecomp.sdc.versioning.dao.types.UserCandidateVersion;
34 import org.openecomp.sdc.versioning.dao.types.Version;
35 import org.openecomp.sdc.versioning.dao.types.VersionInfoDeletedEntity;
36 import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
37 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
38 import org.openecomp.sdc.versioning.types.VersionInfo;
39 import org.openecomp.sdc.versioning.types.VersionableEntityAction;
40 import org.testng.Assert;
41 import org.testng.annotations.BeforeMethod;
42 import org.testng.annotations.Test;
44 import java.util.Collections;
45 import java.util.HashSet;
49 import static org.mockito.Matchers.anyObject;
50 import static org.mockito.Mockito.doReturn;
51 import static org.mockito.Mockito.verify;
53 public class VersioningManagerImplTest {
54 private static final String USR1 = "usr1";
55 private static final String USR2 = "usr2";
56 private static final String TYPE1 = "Type1";
57 /* private static final String TYPE2 = "Type2";*/
58 private static final String ID1 = "Id1";
59 /* private static final String ID2 = "Id2";
60 private static final String ID3 = "Id3";
61 private static final String TYPE1_TABLE_NAME = "vendor_license_model";
62 private static final String TYPE1_ID_NAME = "vlm_id";
63 private static final String TYPE1_VERSION_NAME = "version";
64 private static final String TYPE2_TABLE_NAME = "feature_group";
65 private static final String TYPE2_ID_NAME = "vlm_id";
66 private static final String TYPE2_VERSION_NAME = "version";*/
67 private static final Version VERSION0 = new Version(0, 0);
68 private static final Version VERSION01 = new Version(0, 1);
69 private static final Version VERSION02 = new Version(0, 2);
70 private static final Version VERSION10 = new Version(1, 0);
71 private static final Version VERSION11 = new Version(1, 1);
73 /* private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
75 private static UDTMapper<Version> versionMapper =
76 noSqlDb.getMappingManager().udtMapper(Version.class);*/
78 private VersionInfoDao versionInfoDaoMock;
80 private VersionInfoDeletedDao versionInfoDeletedDaoMock;
82 private VersioningManagerImpl versioningManager;
85 private ArgumentCaptor<VersionInfoEntity> versionInfoEntityArg;
88 public void setUp() throws Exception {
89 MockitoAnnotations.initMocks(this);
94 versionInfoDaoMock.delete(new VersionInfoEntity(TYPE1, ID1));
95 versionInfoDaoMock.delete(new VersionInfoEntity(TYPE1, ID2));
96 versionInfoDaoMock.delete(new VersionInfoEntity(TYPE2, ID3));
97 String deleteFromType1 = String
98 .format("delete from %s where %s=? and %s=?", TYPE1_TABLE_NAME, TYPE1_ID_NAME,
100 noSqlDb.execute(deleteFromType1, ID1, versionMapper.toUDT(VERSION01));
101 noSqlDb.execute(deleteFromType1, ID1, versionMapper.toUDT(VERSION02));
102 noSqlDb.execute(deleteFromType1, ID1, versionMapper.toUDT(VERSION11));
104 versioningManager.register(TYPE1,
105 new VersionableEntityMetadata(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME));
106 versioningManager.register(TYPE2,
107 new VersionableEntityMetadata(TYPE2_TABLE_NAME, TYPE2_ID_NAME, TYPE2_VERSION_NAME));
111 public void testRegister() throws Exception {
112 VersionableEntityMetadata entityMetadata =
113 new VersionableEntityMetadata(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME);
114 versioningManager.register(TYPE1, entityMetadata);
116 Map<String, Set<VersionableEntityMetadata>> versionableEntities =
117 versionableEntitiesCapture.capture();
118 Set<VersionableEntityMetadata> type1Entities = versionableEntities.get(TYPE1);
119 Assert.assertNotNull(type1Entities);
120 Assert.assertTrue(type1Entities.contains(entityMetadata));
123 @Test(expectedExceptions = CoreException.class)
124 public void testCreateAlreadyExisting() {
125 doReturn(new VersionInfoEntity()).when(versionInfoDaoMock).get(anyObject());
126 versioningManager.create(TYPE1, ID1, USR1);
130 public void testCreate() {
131 Version version = versioningManager.create(TYPE1, ID1, USR1);
132 Assert.assertEquals(version, VERSION01);
134 /* createVersionableEntityRecord(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME, ID1,
136 verify(versionInfoDaoMock).create(versionInfoEntityArg.capture());
137 VersionInfoEntity versionInfoEntity = versionInfoEntityArg.getValue();
138 assretVersionInfoEntity(versionInfoEntity, TYPE1, ID1, new Version(0, 0), VERSION01, USR1,
139 VersionStatus.Locked, new HashSet<>(), null);
142 @Test(expectedExceptions = CoreException.class)
143 public void testDeleteNonExisting() {
144 versioningManager.delete(TYPE1, ID1, USR1);
147 @Test(expectedExceptions = CoreException.class)
148 public void testDeleteLocked() {
149 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
150 new UserCandidateVersion(USR1, VERSION01), Collections.emptySet(), null);
151 versioningManager.delete(TYPE1, ID1, USR1);
155 public void testDelete() {
156 VersionInfoEntity versionInfoEntity = new VersionInfoEntity();
157 versionInfoEntity.setStatus(VersionStatus.Available);
158 doReturn(versionInfoEntity).when(versionInfoDaoMock).get(anyObject());
160 versioningManager.delete(TYPE1, ID1, USR1);
162 verify(versionInfoDaoMock).delete(versionInfoEntity);
163 ArgumentCaptor<VersionInfoDeletedEntity> versionInfoDeletedEntityArg =
164 ArgumentCaptor.forClass(VersionInfoDeletedEntity.class);
165 verify(versionInfoDeletedDaoMock).create(versionInfoDeletedEntityArg.capture());
168 @Test(expectedExceptions = CoreException.class)
169 public void testUndoDeleteNonExisting() {
170 versioningManager.undoDelete(TYPE1, ID1, USR1);
174 public void testUndoDelete() {
175 VersionInfoDeletedEntity versionInfoDeletedEntity = new VersionInfoDeletedEntity();
176 versionInfoDeletedEntity.setStatus(VersionStatus.Available);
177 doReturn(versionInfoDeletedEntity).when(versionInfoDeletedDaoMock).get(anyObject());
179 versioningManager.undoDelete(TYPE1, ID1, USR1);
181 verify(versionInfoDeletedDaoMock).delete(versionInfoDeletedEntity);
182 verify(versionInfoDaoMock).create(versionInfoEntityArg.capture());
184 VersionInfoDeletedEntity versionInfoDeletedEntity =
185 versionInfoDeletedDaoMock.get(new VersionInfoDeletedEntity(TYPE1, ID1));
186 Assert.assertNotNull(versionInfoDeletedEntity);
188 Map<String, VersionInfo> entitiesInfoMap =
189 versioningManager.listDeletedEntitiesVersionInfo(TYPE1, USR2, null);
190 Assert.assertEquals(entitiesInfoMap.size(), 1);
191 VersionInfoEntity versionInfoEntity = versionInfoDaoMock.get(new VersionInfoEntity(TYPE1, ID1));
192 Assert.assertNull(versionInfoEntity);
193 versioningManager.undoDelete(TYPE1, ID1, USR1);
194 versionInfoEntity = versionInfoDaoMock.get(new VersionInfoEntity(TYPE1, ID1));
195 Assert.assertNotNull(versionInfoEntity);*/
198 @Test(expectedExceptions = CoreException.class)
199 public void testCheckoutNonExisting() {
200 versioningManager.checkout(TYPE1, ID1, USR2);
203 @Test(expectedExceptions = CoreException.class)
204 public void testCheckoutOnLockedSameUser() {
205 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
206 new UserCandidateVersion(USR1, VERSION01), Collections.emptySet(), null);
207 versioningManager.checkout(TYPE1, ID1, USR1);
210 @Test(expectedExceptions = CoreException.class)
211 public void testCheckoutOnLockedOtherUser() {
212 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
213 new UserCandidateVersion(USR2, VERSION01), Collections.emptySet(), null);
214 versioningManager.checkout(TYPE1, ID1, USR1);
218 public void testCheckoutOnFinalized() {
219 Set<Version> viewableVersions = new HashSet<>();
220 viewableVersions.add(VERSION10);
221 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Final, VERSION10, null, viewableVersions,
224 Version version = versioningManager.checkout(TYPE1, ID1, USR1);
225 Assert.assertEquals(version, VERSION11);
227 VersionInfoEntity versionInfoEntity = versionInfoDaoMock.get(new VersionInfoEntity(TYPE1, ID1));
228 assretVersionInfoEntity(versionInfoEntity, TYPE1, ID1, VERSION10, VERSION11, USR1,
229 VersionStatus.Locked, viewableVersions, VERSION10);
232 loadVersionableEntityRecord(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME, ID1,
234 Assert.assertTrue(results.iterator().hasNext());*/
238 public void testCheckout() {
239 Set<Version> viewableVersions = new HashSet<>();
240 viewableVersions.add(VERSION01);
241 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Available, VERSION01, null, viewableVersions,
244 Version version = versioningManager.checkout(TYPE1, ID1, USR1);
245 Assert.assertEquals(version, VERSION02);
247 verify(versionInfoDaoMock).update(versionInfoEntityArg.capture());
248 VersionInfoEntity versionInfoEntity = versionInfoEntityArg.getValue();
250 assretVersionInfoEntity(versionInfoEntity, TYPE1, ID1, VERSION01, VERSION02, USR1,
251 VersionStatus.Locked, viewableVersions, null);
253 /* ResultSet results =
254 loadVersionableEntityRecord(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME, ID1,
256 Assert.assertTrue(results.iterator().hasNext());*/
259 @Test(expectedExceptions = CoreException.class)
260 public void testUndoCheckoutNonExisting() {
261 versioningManager.undoCheckout(TYPE1, ID1, USR1);
264 @Test(expectedExceptions = CoreException.class)
265 public void testUndoCheckoutOnAvailable() {
266 Set<Version> viewableVersions = new HashSet<>();
267 viewableVersions.add(VERSION01);
268 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Available, VERSION01, null, viewableVersions,
271 versioningManager.undoCheckout(TYPE1, ID1, USR1);
274 @Test(expectedExceptions = CoreException.class)
275 public void testUndoCheckouOnFinalized() {
276 Set<Version> viewableVersions = new HashSet<>();
277 viewableVersions.add(VERSION10);
278 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Final, VERSION10, null, viewableVersions,
280 versioningManager.undoCheckout(TYPE1, ID1, USR2);
283 @Test(expectedExceptions = CoreException.class)
284 public void testUndoCheckoutOnLockedOtherUser() {
285 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
286 new UserCandidateVersion(USR2, VERSION01), Collections.emptySet(), null);
288 versioningManager.undoCheckout(TYPE1, ID1, USR1);
292 public void testUndoCheckout() {
293 HashSet<Version> viewableVersions = new HashSet<>();
294 viewableVersions.add(VERSION01);
295 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION01,
296 new UserCandidateVersion(USR1, VERSION02), viewableVersions, null);
298 Version version = versioningManager.undoCheckout(TYPE1, ID1, USR1);
299 Assert.assertEquals(version, VERSION01);
301 VersionInfoEntity versionInfoEntity = versionInfoDaoMock.get(new VersionInfoEntity(TYPE1, ID1));
302 assretVersionInfoEntity(versionInfoEntity, TYPE1, ID1, VERSION01, null, null,
303 VersionStatus.Available, viewableVersions, null);
305 /* ResultSet results =
306 loadVersionableEntityRecord(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME, ID1,
308 Assert.assertFalse(results.iterator().hasNext());*/
311 @Test(expectedExceptions = CoreException.class)
312 public void testCheckinNonExisting() {
313 versioningManager.checkin(TYPE1, ID1, USR1, "");
316 @Test(expectedExceptions = CoreException.class)
317 public void testCheckinOnAvailable() {
318 Set<Version> viewableVersions = new HashSet<>();
319 viewableVersions.add(VERSION01);
320 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Available, VERSION01, null, viewableVersions,
323 versioningManager.checkin(TYPE1, ID1, USR1, "fail checkin");
327 @Test(expectedExceptions = CoreException.class)
328 public void testCheckinOnFinalized() {
329 Set<Version> viewableVersions = new HashSet<>();
330 viewableVersions.add(VERSION10);
331 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Final, VERSION10, null, viewableVersions,
334 versioningManager.checkin(TYPE1, ID1, USR1, "failed checkin");
337 @Test(expectedExceptions = CoreException.class)
338 public void testCheckinOnLockedOtherUser() {
339 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
340 new UserCandidateVersion(USR2, VERSION01), Collections.emptySet(), null);
342 versioningManager.checkin(TYPE1, ID1, USR1, "");
346 public void testCheckin() {
347 HashSet<Version> viewableVersions = new HashSet<>();
348 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
349 new UserCandidateVersion(USR1, VERSION01), viewableVersions, null);
351 Version version = versioningManager.checkin(TYPE1, ID1, USR1, "checkin 0.1");
352 Assert.assertEquals(version, VERSION01);
354 verify(versionInfoDaoMock).update(versionInfoEntityArg.capture());
355 VersionInfoEntity versionInfoEntity = versionInfoEntityArg.getValue();
357 viewableVersions.add(VERSION01);
358 assretVersionInfoEntity(versionInfoEntity, TYPE1, ID1, VERSION01, null, null,
359 VersionStatus.Available, viewableVersions, null);
362 @Test(expectedExceptions = CoreException.class)
363 public void testSubmitNonExisting() {
364 versioningManager.submit(TYPE1, ID1, USR2, "failed submit");
367 @Test(expectedExceptions = CoreException.class)
368 public void testSubmitOnLocked() {
369 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION0,
370 new UserCandidateVersion(USR1, VERSION01), Collections.emptySet(), null);
371 versioningManager.submit(TYPE1, ID1, USR2, "failed submit");
375 @Test(expectedExceptions = CoreException.class)
376 public void testSubmitOnFinalized() {
377 Set<Version> viewableVersions = new HashSet<>();
378 viewableVersions.add(VERSION10);
379 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Final, VERSION10, null, viewableVersions,
381 versioningManager.submit(TYPE1, ID1, USR2, "failed submit");
385 public void testSubmit() {
386 Version version32 = new Version(3, 2);
387 Version version40 = new Version(4, 0);
389 Set<Version> viewableVersions = new HashSet<>();
390 viewableVersions.add(VERSION10);
391 viewableVersions.add(new Version(2, 0));
392 viewableVersions.add(new Version(3, 0));
393 viewableVersions.add(new Version(3, 1));
394 viewableVersions.add(version32);
395 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Available, version32, null, viewableVersions,
398 Version version = versioningManager.submit(TYPE1, ID1, USR1, "submit msg");
399 Assert.assertEquals(version, version40);
400 viewableVersions.remove(new Version(3, 1));
401 viewableVersions.remove(version32);
402 viewableVersions.add(version40);
404 verify(versionInfoDaoMock).update(versionInfoEntityArg.capture());
405 VersionInfoEntity versionInfoEntity = versionInfoEntityArg.getValue();
407 assretVersionInfoEntity(versionInfoEntity, TYPE1, ID1, version40, null, null,
408 VersionStatus.Final, viewableVersions, version40);
410 /* ResultSet results =
411 loadVersionableEntityRecord(TYPE1_TABLE_NAME, TYPE1_ID_NAME, TYPE1_VERSION_NAME, ID1,
413 Assert.assertTrue(results.iterator().hasNext());*/
416 @Test(expectedExceptions = CoreException.class)
417 public void testGetVersionInfoOnNonExistingEntity() {
418 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Read);
422 public void testGetVersionInfoForReadOnAvailable() {
423 Set<Version> viewableVersions = new HashSet<>();
424 viewableVersions.add(VERSION01);
425 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Available, VERSION01, null, viewableVersions,
428 VersionInfo versionInfo =
429 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Read);
430 assertVersionInfo(versionInfo, VERSION01, VersionStatus.Available, null,
431 viewableVersions, null);
434 @Test(expectedExceptions = CoreException.class)
435 public void testGetVersionInfoForWriteOnAvailable() {
436 Set<Version> viewableVersions = new HashSet<>();
437 viewableVersions.add(VERSION01);
438 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Available, VERSION01, null, viewableVersions,
441 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Write);
445 public void testGetVersionInfoForReadOnLockedSameUser() {
446 Set<Version> viewableVersions = new HashSet<>();
447 viewableVersions.add(VERSION01);
448 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION01,
449 new UserCandidateVersion(USR1, VERSION02), viewableVersions, null);
451 VersionInfo versionInfo =
452 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Read);
453 viewableVersions.add(VERSION02);
454 assertVersionInfo(versionInfo, VERSION02, VersionStatus.Locked, USR1, viewableVersions, null);
458 public void testGetVersionInfoForReadOnLockedOtherUser() {
459 Set<Version> viewableVersions = new HashSet<>();
460 viewableVersions.add(VERSION01);
461 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION01,
462 new UserCandidateVersion(USR2, VERSION02), viewableVersions, null);
464 VersionInfo versionInfo =
465 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Read);
466 Assert.assertEquals(versionInfo.getActiveVersion(), VERSION01);
467 assertVersionInfo(versionInfo, VERSION01, VersionStatus.Locked, USR2, viewableVersions, null);
470 @Test(expectedExceptions = CoreException.class)
471 public void testGetVersionInfoForWriteOnLockedOtherUser() {
472 Set<Version> viewableVersions = new HashSet<>();
473 viewableVersions.add(VERSION01);
474 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION01,
475 new UserCandidateVersion(USR2, VERSION02), viewableVersions, null);
477 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Write);
481 public void testGetVersionInfoForWriteOnLockedSameUser() {
482 Set<Version> viewableVersions = new HashSet<>();
483 viewableVersions.add(VERSION01);
484 mockVersionInfoEntity(TYPE1, ID1, VersionStatus.Locked, VERSION01,
485 new UserCandidateVersion(USR1, VERSION02), viewableVersions, null);
487 VersionInfo versionInfo =
488 versioningManager.getEntityVersionInfo(TYPE1, ID1, USR1, VersionableEntityAction.Write);
489 viewableVersions.add(VERSION02);
490 assertVersionInfo(versionInfo, VERSION02, VersionStatus.Locked, USR1, viewableVersions, null);
493 /* private void createVersionableEntityRecord(String tableName, String idName, String versionName,
494 String id, Version version) {
496 String.format("insert into %s (%s,%s) values (?,?)", tableName, idName, versionName), id,
497 versionMapper.toUDT(version));
500 private ResultSet loadVersionableEntityRecord(String tableName, String idName, String versionName,
501 String id, Version version) {
502 return noSqlDb.execute(
503 String.format("select * from %s where %s=? and %s=?", tableName, idName, versionName), id,
504 versionMapper.toUDT(version));
508 private static void assretVersionInfoEntity(VersionInfoEntity actual, String entityType,
509 String entityId, Version activeVersion,
510 Version candidateVersion, String candidateUser,
511 VersionStatus status, Set<Version> viewbleVersions,
512 Version latestFinalVersion) {
513 Assert.assertNotNull(actual);
514 Assert.assertEquals(actual.getEntityType(), entityType);
515 Assert.assertEquals(actual.getEntityId(), entityId);
516 Assert.assertEquals(actual.getActiveVersion(), activeVersion);
517 if (candidateVersion != null && candidateUser != null) {
518 Assert.assertEquals(actual.getCandidate().getVersion(), candidateVersion);
519 Assert.assertEquals(actual.getCandidate().getUser(), candidateUser);
521 Assert.assertNull(actual.getCandidate());
523 Assert.assertEquals(actual.getStatus(), status);
524 Assert.assertEquals(actual.getViewableVersions().size(), viewbleVersions.size());
525 Assert.assertEquals(actual.getViewableVersions(), viewbleVersions);
526 Assert.assertEquals(actual.getLatestFinalVersion(), latestFinalVersion);
529 private static void assertVersionInfo(VersionInfo actual, Version activeVersion,
530 VersionStatus status, String lockingUser,
531 Set<Version> viewableVersions, Version latestFinalVersion) {
532 Assert.assertNotNull(actual);
533 Assert.assertEquals(actual.getActiveVersion(), activeVersion);
534 Assert.assertEquals(actual.getStatus(), status);
535 Assert.assertEquals(actual.getLockingUser(), lockingUser);
536 Assert.assertEquals(actual.getViewableVersions().size(), viewableVersions.size());
537 Assert.assertEquals(actual.getViewableVersions(), viewableVersions);
538 Assert.assertEquals(actual.getLatestFinalVersion(), latestFinalVersion);
541 private VersionInfoEntity mockVersionInfoEntity(String entityType, String entityId,
542 VersionStatus status, Version activeVersion,
543 UserCandidateVersion candidate,
544 Set<Version> viewableVersions,
545 Version latestFinalVersion) {
546 VersionInfoEntity mock = new VersionInfoEntity();
547 mock.setEntityType(entityType);
548 mock.setEntityId(entityId);
549 mock.setStatus(status);
550 mock.setActiveVersion(activeVersion);
551 mock.setCandidate(candidate);
552 mock.setViewableVersions(viewableVersions);
553 mock.setLatestFinalVersion(latestFinalVersion);
555 doReturn(mock).when(versionInfoDaoMock).get(anyObject());