X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-service%2Fsrc%2Ftest%2Fgroovy%2Forg%2Fonap%2Fcps%2Futils%2FYangTextSchemaSourceSetSpec.groovy;h=b6250612ed77e64cccbef25f4e062ef59b6e0cb7;hb=ea01d09861289ff162dff318713d1c24eba89259;hp=fd1b14430902c4a6107bc3615d04c1420c827139;hpb=5337a5f3f75de945b612068fd441bfa416084440;p=cps.git diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy index fd1b14430..b6250612e 100644 --- a/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy @@ -1,12 +1,15 @@ /* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation + * ============LICENSE_START======================================================= + * Copyright (C) 2020-2021 Pantheon.tech + * Modifications Copyright (C) 2020-2021 Nordix Foundation + * Modifications Copyright (C) 2021 Bell Canada. * ================================================================================ * 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. @@ -20,27 +23,29 @@ package org.onap.cps.utils import org.onap.cps.TestUtils +import org.onap.cps.spi.exceptions.ModelValidationException import org.onap.cps.yang.YangTextSchemaSourceSetBuilder import org.opendaylight.yangtools.yang.common.Revision -import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException import spock.lang.Specification -import spock.lang.Unroll class YangTextSchemaSourceSetSpec extends Specification { - def 'Generating a valid YangTextSchemaSource Set '() { + def 'Building a valid YangTextSchemaSourceSet using #filenameCase filename.'() { given: 'a yang model (file)' - def yangResourceNameToContent = TestUtils.getYangResourcesAsMap('bookstore.yang') + def yangResourceNameToContent = [filename: TestUtils.getResourceFileContent('bookstore.yang')] when: 'the content is parsed' - def result = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent).getSchemaContext(); + def result = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent).getSchemaContext() then: 'the result contains 1 module of the correct name and revision' result.modules.size() == 1 def optionalModule = result.findModule('stores', Revision.of('2020-09-15')) optionalModule.isPresent() + where: + filenameCase | filename + 'generic' | 'bookstore' + 'RFC-6020 recommended' | 'bookstore-test@2020-09-15.YANG' } - @Unroll - def 'Generating invalid YangTextSchemaSource Set (#description).'() { + def 'Building YangTextSchemaSourceSet error case: #description.'() { given: 'a file with #description' def yangResourceNameToContent = TestUtils.getYangResourcesAsMap(filename) when: 'the content is parsed' @@ -48,8 +53,9 @@ class YangTextSchemaSourceSetSpec extends Specification { then: 'an exception is thrown' thrown(expectedException) where: 'the following parameters are used' - filename | description || expectedException - 'invalid.yang' | 'invalid content' || YangSyntaxErrorException - 'invalid-empty.yang'| 'no valid content' || YangSyntaxErrorException + filename | description || expectedException + 'invalid.yang' | 'invalid content' || ModelValidationException + 'invalid-empty.yang' | 'no valid content' || ModelValidationException + 'invalid-missing-import.yang' | 'no dependency module' || ModelValidationException } }