aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java/org/onap/vid/job/command/CommandUtilsTest.java
blob: 61a54f2509cf118b9dfb16330cf4daeebc212250 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package org.onap.vid.job.command;

import com.google.common.collect.ImmutableMap;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.onap.vid.asdc.AsdcCatalogException;
import org.onap.vid.model.GroupProperties;
import org.onap.vid.model.ServiceModel;
import org.onap.vid.model.VfModule;
import org.onap.vid.services.VidService;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.Collections;
import java.util.Map;
import java.util.UUID;

import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.mockito.Mockito.*;

public class CommandUtilsTest {

    @InjectMocks
    CommandUtils commandUtils;

    @Mock
    VidService vidService;

    @BeforeClass
    public void initMocks() {
        MockitoAnnotations.initMocks(this);
    }

    @AfterMethod
    public void resetVidService() {
        reset(vidService);
    }

    @DataProvider
    public static Object[][] trueAndFalse() {
        return new Object[][]{ {true}, {false} };
    }

    @Test(dataProvider="trueAndFalse")
    void testIsVfModelIsBaseModule(boolean isBase) throws AsdcCatalogException {
        final String serviceModelUuid = UUID.randomUUID().toString();
        final String vfModuleUuid = UUID.randomUUID().toString();

        ServiceModel mockedServiceModel = mock(ServiceModel.class);
        VfModule mockedVfModule = mock(VfModule.class);
        GroupProperties mockedGroupProperties = mock(GroupProperties.class);
        Map<String, VfModule> vfModulesMap = ImmutableMap.of(randomAlphanumeric(10), mockedVfModule);

        when(vidService.getService(serviceModelUuid)).thenReturn(mockedServiceModel);
        when(mockedServiceModel.getVfModules()).thenReturn(vfModulesMap);
        when(mockedVfModule.getUuid()).thenReturn(vfModuleUuid);
        when(mockedVfModule.getProperties()).thenReturn(mockedGroupProperties);
        when(mockedGroupProperties.getBaseModule()).thenReturn(isBase);

        assertThat(commandUtils.isVfModuleBaseModule(serviceModelUuid, vfModuleUuid), equalTo(isBase));
    }

    @Test(expectedExceptions = AsdcCatalogException.class)
    void whenCantFindModelInSdc_thenExceptionIsThrown() throws AsdcCatalogException {
        String serviceModelUuid = UUID.randomUUID().toString();
        when(vidService.getService(serviceModelUuid)).thenReturn(null);
        commandUtils.isVfModuleBaseModule(serviceModelUuid, "abc");
    }

    @Test(expectedExceptions = AsdcCatalogException.class)
    void whenCantFindVfModuleInModel_thenExceptionIsThrown() throws AsdcCatalogException {

        String serviceModelUuid = UUID.randomUUID().toString();

        ServiceModel mockedServiceModel = mock(ServiceModel.class);
        Map<String, VfModule> emptyMap = Collections.emptyMap();

        when(vidService.getService(serviceModelUuid)).thenReturn(mockedServiceModel);
        when(mockedServiceModel.getVfModules()).thenReturn(emptyMap);

        commandUtils.isVfModuleBaseModule(serviceModelUuid, "abc");
    }
}