3 * ============LICENSE_START=======================================================
4 * Copyright (C) 2022 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25 import static org.junit.jupiter.api.Assertions.assertTrue;
26 import static org.mockito.Mockito.mock;
27 import static org.mockito.Mockito.when;
29 import com.datastax.driver.mapping.Result;
30 import java.util.ArrayList;
31 import java.util.Calendar;
32 import java.util.List;
33 import java.util.Optional;
34 import java.util.UUID;
35 import java.util.stream.IntStream;
36 import org.junit.jupiter.api.BeforeEach;
37 import org.junit.jupiter.api.Test;
38 import org.mockito.Mock;
39 import org.mockito.MockitoAnnotations;
40 import org.openecomp.sdc.vendorsoftwareproduct.dao.VspUploadStatusRecordAccessor;
41 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspUploadStatusRecord;
43 class VspUploadStatusRecordDaoImlTest {
46 private VspUploadStatusRecordAccessor accessor;
48 private VspUploadStatusRecordDaoIml packageUploadManagerDaoIml;
52 MockitoAnnotations.openMocks(this);
53 packageUploadManagerDaoIml = new VspUploadStatusRecordDaoIml(accessor);
57 void findAllByVspIdAndVersionIdSuccessTest() {
59 final String vspId = "vspId";
60 final String vspVersionId = "vspVersionId";
61 final List<VspUploadStatusRecord> expectedVspUploadStatusRecordList = List.of(new VspUploadStatusRecord(), new VspUploadStatusRecord());
62 final Result<VspUploadStatusRecord> resultMock = mock(Result.class);
63 when(resultMock.all()).thenReturn(expectedVspUploadStatusRecordList);
64 when(accessor.findAllByVspIdAndVspVersionId(vspId, vspVersionId)).thenReturn(resultMock);
66 final List<VspUploadStatusRecord> actualVspUploadStatusRecordList =
67 packageUploadManagerDaoIml.findAllByVspIdAndVersionId(vspId, vspVersionId);
69 assertEquals(expectedVspUploadStatusRecordList, actualVspUploadStatusRecordList);
73 void findByVspIdAndVersionIdAndLockIdSuccessTest() {
75 final String vspId = "vspId";
76 final String vspVersionId = "vspVersionId";
77 final UUID lockId = UUID.randomUUID();
78 final var expectedVspUploadStatus = new VspUploadStatusRecord();
79 final Result<VspUploadStatusRecord> resultMock = mock(Result.class);
80 when(resultMock.one()).thenReturn(expectedVspUploadStatus);
81 when(accessor.findByVspIdAndVersionIdAndLockId(vspId, vspVersionId, lockId)).thenReturn(resultMock);
83 final Optional<VspUploadStatusRecord> vspUploadStatusOptional =
84 packageUploadManagerDaoIml.findByVspIdAndVersionIdAndLockId(vspId, vspVersionId, lockId);
86 assertTrue(vspUploadStatusOptional.isPresent());
87 assertEquals(expectedVspUploadStatus, vspUploadStatusOptional.get());
91 void findAllNotCompleteSuccessTest() {
93 final String vspId = "vspId";
94 final String vspVersionId = "vspVersionId";
95 final List<VspUploadStatusRecord> expectedVspUploadStatusRecordList = List.of(new VspUploadStatusRecord(), new VspUploadStatusRecord());
96 final Result<VspUploadStatusRecord> resultMock = mock(Result.class);
97 when(resultMock.all()).thenReturn(expectedVspUploadStatusRecordList);
98 when(accessor.findAllIncomplete(vspId, vspVersionId)).thenReturn(resultMock);
100 final List<VspUploadStatusRecord> actualVspUploadStatusRecordList = packageUploadManagerDaoIml.findAllInProgress(vspId, vspVersionId);
102 assertEquals(expectedVspUploadStatusRecordList, actualVspUploadStatusRecordList);
106 void findLatestSuccessTest() {
108 final String vspId = "vspId";
109 final String vspVersionId = "vspVersionId";
110 final List<VspUploadStatusRecord> expectedVspUploadStatusRecordList = new ArrayList<>();
111 IntStream.rangeClosed(1, 31)
113 final VspUploadStatusRecord vspUploadStatusRecord = new VspUploadStatusRecord();
114 final Calendar calendar = Calendar.getInstance();
115 calendar.set(2022, Calendar.JANUARY, day);
116 vspUploadStatusRecord.setCreated(calendar.getTime());
117 return vspUploadStatusRecord;
119 .forEach(expectedVspUploadStatusRecordList::add);
120 final Result<VspUploadStatusRecord> resultMock = mock(Result.class);
121 when(resultMock.all()).thenReturn(expectedVspUploadStatusRecordList);
123 final VspUploadStatusRecord mostRecentVspUploadStatus = expectedVspUploadStatusRecordList.get(expectedVspUploadStatusRecordList.size() - 1);
125 when(accessor.findAllByVspIdAndVspVersionId(vspId, vspVersionId)).thenReturn(resultMock);
127 final Optional<VspUploadStatusRecord> vspUploadStatusOptional = packageUploadManagerDaoIml.findLatest(vspId, vspVersionId);
129 assertTrue(vspUploadStatusOptional.isPresent());
130 assertEquals(mostRecentVspUploadStatus, vspUploadStatusOptional.get());
134 void findLatest_noEntryFoundTest() {
136 final String vspId = "vspId";
137 final String vspVersionId = "vspVersionId";
138 final Result<VspUploadStatusRecord> resultMock = mock(Result.class);
139 when(resultMock.all()).thenReturn(new ArrayList<>());
141 when(accessor.findAllByVspIdAndVspVersionId(vspId, vspVersionId)).thenReturn(resultMock);
143 final Optional<VspUploadStatusRecord> vspUploadStatusOptional = packageUploadManagerDaoIml.findLatest(vspId, vspVersionId);
145 assertTrue(vspUploadStatusOptional.isEmpty());