summaryrefslogtreecommitdiffstats
path: root/cps-service/src/test/groovy/org/onap/cps/spi/exceptions/CpsExceptionsSpec.groovy
blob: 067556dd58abd3273b71873a3d975eb28c695c17 (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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2021 Nordix Foundation
 *  ================================================================================
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *  SPDX-License-Identifier: Apache-2.0
 *  ============LICENSE_END=========================================================
 */
package org.onap.cps.spi.exceptions

import spock.lang.Specification

class CpsExceptionsSpec extends Specification {
    def dataspaceName = 'some data space'
    def anchorName = 'some anchor'
    def schemaSetName = 'some schema set'
    def rootCause = new Throwable()
    def providedMessage = 'some message'
    def providedDetails = 'some details'

    def 'Creating an exception that the Anchor already exist.'() {
        given: 'an exception dat the Anchor already exist is created'
            def exception = new AnchorAlreadyDefinedException(dataspaceName, anchorName, rootCause)
        expect: 'the exception details contains the correct message with Anchor name and Dataspace name'
            exception.details == "Anchor with name ${anchorName} already exists for dataspace ${dataspaceName}."
        and: 'the correct root cause is maintained'
            exception.cause == rootCause
    }

    def 'Creating an exception that the dataspace already exists.'() {
        given: 'an exception that the dataspace already exists is created'
            def exception = new DataspaceAlreadyDefinedException(dataspaceName, rootCause)
        expect: 'the exception details contains the correct message with dataspace name'
            exception.details == "Dataspace with name ${dataspaceName} already exists."
        and: 'the correct root cause is maintained'
            exception.cause == rootCause
    }

    def 'Creating a exception that a dataspace is not found.'() {
        expect: 'the exception details contains the correct message with dataspace name'
            (new DataspaceNotFoundException(dataspaceName)).details
                    == "Dataspace with name ${dataspaceName} does not exist."
    }

    def'Creating a data validation exception.'() {
        given: 'a data validation exception is created'
            def exception = new DataValidationException(providedMessage, providedDetails, rootCause)
        expect: 'the exception has the provided message'
            exception.message == providedMessage
        and: 'the exception has the provided details'
            exception.details == providedDetails
        and: 'the correct root cause is maintained'
            exception.cause == rootCause
    }

    def'Creating a model validation exception.'() {
        given: 'a data validation exception is created'
            def exception = new ModelValidationException(providedMessage, providedDetails)
        expect: 'the exception has the provided message'
            exception.message == providedMessage
        and: 'the exception has the provided details'
            exception.details == providedDetails
    }

    def 'Creating a model validation exception with a root cause.'() {
        given: 'a model validation exception is created'
            def exception = new ModelValidationException(providedMessage, providedDetails, rootCause)
        expect: 'the exception has the provided message'
            exception.message == providedMessage
        and: 'the exception has the provided details'
            exception.details == providedDetails
        and: 'the correct root cause is maintained'
            exception.cause == rootCause
    }

    def 'Creating a exception for an object not found in a dataspace.'() {
        def descriptionOfObject = 'some object'
        expect: 'the exception details contains the correct message with dataspace name and description of the object'
            (new NotFoundInDataspaceException(dataspaceName,descriptionOfObject)).details
                    == "${descriptionOfObject} does not exist in dataspace ${dataspaceName}."
    }

    def 'Creating an exception that the schema set already exists.'() {
        given: 'an exception that the schema set already exists is created'
            def exception = new SchemaSetAlreadyDefinedException(dataspaceName, schemaSetName, rootCause)
        expect: 'the exception details contains the correct message with dataspace and schema set names'
            exception.details == "Schema Set with name ${schemaSetName} already exists for dataspace ${dataspaceName}."
        and: 'the correct root cause is maintained'
            exception.cause == rootCause
    }

    def 'Creating a exception that a schema set cannot be found.'() {
        expect: 'the exception details contains the correct message with dataspace and schema set names'
            (new SchemaSetNotFoundException(dataspaceName,schemaSetName)).details
                    == "Schema Set with name ${schemaSetName} was not found for dataspace ${dataspaceName}."
    }
}