1 package org.onap.sdc.workflow.services;
3 import static org.junit.Assert.assertFalse;
4 import static org.junit.Assert.assertTrue;
5 import static org.mockito.ArgumentMatchers.any;
6 import static org.mockito.ArgumentMatchers.anyString;
7 import static org.mockito.Mockito.doReturn;
8 import static org.mockito.Mockito.never;
9 import static org.mockito.Mockito.times;
10 import static org.mockito.Mockito.verify;
12 import java.util.Optional;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.mockito.InjectMocks;
16 import org.mockito.Mock;
17 import org.mockito.MockitoAnnotations;
18 import org.mockito.Spy;
19 import org.onap.sdc.workflow.persistence.UniqueValueRepository;
20 import org.onap.sdc.workflow.persistence.types.UniqueValueEntity;
21 import org.onap.sdc.workflow.services.exceptions.UniqueValueViolationException;
23 public class UniqueValueServiceTest {
25 private static final String TYPE = "ss";
26 private static final String DUMMY_COMBINATION = "dummy";
29 private UniqueValueRepository uniqueValueRepositoryMock;
33 private UniqueValueService uniqueValueService;
37 MockitoAnnotations.initMocks(this);
41 public void shouldCallRepositoryInsertIfValueUnique() {
42 doReturn(Optional.empty()).when(uniqueValueRepositoryMock).findById(any());
43 uniqueValueService.createUniqueValue(TYPE, DUMMY_COMBINATION);
44 verify(uniqueValueRepositoryMock, times(1)).insert(any(UniqueValueEntity.class));
48 public void shouldNotCheckValueIfNoUniqueCombination() {
49 uniqueValueService.createUniqueValue(TYPE);
50 verify(uniqueValueRepositoryMock, never()).findById(any(UniqueValueEntity.class));
53 @Test(expected = UniqueValueViolationException.class)
54 public void shouldThrowExceptionIfValueIsNotUnique() {
55 doReturn(Optional.of("xxx")).when(uniqueValueRepositoryMock).findById(any());
56 uniqueValueService.createUniqueValue(TYPE, DUMMY_COMBINATION);
60 public void shouldCallRepositoryDeleteIfValueValid() {
61 uniqueValueService.deleteUniqueValue(TYPE, DUMMY_COMBINATION);
62 verify(uniqueValueRepositoryMock, times(1)).delete(any(UniqueValueEntity.class));
66 public void shouldNotCallRepositoryDeleteIfValueNouniqueCombination() {
67 uniqueValueService.deleteUniqueValue(TYPE);
68 verify(uniqueValueRepositoryMock, never()).delete(any(UniqueValueEntity.class));
72 public void shouldNotUpdateIfNewAndOldValueAreEqualsCaseIgnore() {
73 String value = "value";
74 uniqueValueService.updateUniqueValue(TYPE, value, value.toUpperCase());
75 verify(uniqueValueService, never()).createUniqueValue(anyString(), any());
79 public void shouldUpdateIfNewAndOldValueAreNotEqualsCaseIgnore() {
80 String oldValue = "oldValue";
81 String newValue = "newValue";
82 uniqueValueService.updateUniqueValue(TYPE, oldValue, newValue);
83 verify(uniqueValueService, times(1)).createUniqueValue(anyString(), any());
84 verify(uniqueValueService, times(1)).deleteUniqueValue(anyString(), any());
88 public void shouldReturnTrueIfValueExist() {
89 doReturn(Optional.of("xxx")).when(uniqueValueRepositoryMock).findById(any());
90 assertTrue(uniqueValueService.isUniqueValueOccupied(TYPE, DUMMY_COMBINATION));
94 public void shouldReturnFalseIfValueNotExist() {
95 doReturn(Optional.empty()).when(uniqueValueRepositoryMock).findById(any());
96 assertFalse(uniqueValueService.isUniqueValueOccupied(TYPE, DUMMY_COMBINATION));