/*
* ============LICENSE_START=======================================================
* Copyright (c) 2021 Bell Canada.
- * Modifications Copyright (C) 2022 Nordix Foundation
+ * Modifications Copyright (C) 2022-2023 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import org.onap.cps.spi.repository.SchemaSetRepository
import org.onap.cps.spi.repository.YangResourceRepository
import org.springframework.dao.DataIntegrityViolationException
-import spock.lang.Shared
import spock.lang.Specification
import java.sql.SQLException
*/
class CpsModulePersistenceServiceSpec extends Specification {
- // Instance to test
CpsModulePersistenceService objectUnderTest
- // Mocks
def dataspaceRepositoryMock = Mock(DataspaceRepository)
def yangResourceRepositoryMock = Mock(YangResourceRepository)
def schemaSetRepositoryMock = Mock(SchemaSetRepository)
def cpsAdminPersistenceServiceMock = Mock(CpsAdminPersistenceService)
def moduleReferenceRepositoryMock = Mock(ModuleReferenceRepository)
- // Constants
def yangResourceName = 'my-yang-resource-name'
def yangResourceContent = 'module stores {\n' +
' yang-version 1.1;\n' +
' }' +
'}'
- // Scenario data
static yangResourceChecksum = 'b13faef573ed1374139d02c40d8ce09c80ea1dc70e63e464c1ed61568d48d539'
static yangResourceChecksumDbConstraint = 'yang_resource_checksum_key'
static sqlExceptionMessage = String.format('(checksum)=(%s)', yangResourceChecksum)
- static checksumIntegrityException = new DataIntegrityViolationException(
- "checksum integrity exception",
+ static checksumIntegrityException = new DataIntegrityViolationException('checksum integrity exception',
new ConstraintViolationException('', new SQLException(sqlExceptionMessage), yangResourceChecksumDbConstraint))
- static checksumIntegrityExceptionWithoutChecksum = new DataIntegrityViolationException(
- "checksum integrity exception",
+ static checksumIntegrityExceptionWithoutChecksum = new DataIntegrityViolationException('checksum integrity exception',
new ConstraintViolationException('', new SQLException('no checksum'), yangResourceChecksumDbConstraint))
- static anotherIntegrityException = new DataIntegrityViolationException("another integrity exception")
+ static otherIntegrityException = new DataIntegrityViolationException('another integrity exception')
def setup() {
objectUnderTest = new CpsModulePersistenceServiceImpl(yangResourceRepositoryMock, schemaSetRepositoryMock,
- dataspaceRepositoryMock, cpsAdminPersistenceServiceMock, moduleReferenceRepositoryMock)
+ dataspaceRepositoryMock, moduleReferenceRepositoryMock)
}
def 'Store schema set error scenario: #scenario.'() {
scenario | dbException || expectedThrownException | expectedThrownExceptionMessage
'checksum data failure' | checksumIntegrityException || DuplicatedYangResourceException | yangResourceChecksum
'checksum failure without checksum' | checksumIntegrityExceptionWithoutChecksum || DuplicatedYangResourceException | 'no checksum found'
- 'other data failure' | anotherIntegrityException || DataIntegrityViolationException | 'another integrity exception'
+ 'other data failure' | otherIntegrityException || DataIntegrityViolationException | 'another integrity exception'
}
}