diff options
author | waqas.ikram <waqas.ikram@ericsson.com> | 2018-05-24 17:00:47 +0100 |
---|---|---|
committer | waqas.ikram <waqas.ikram@ericsson.com> | 2018-05-24 17:30:18 +0100 |
commit | 5abd3063949496c231ed8d3013c2ab17fc9288bb (patch) | |
tree | 5354cda64e12195835ab0ac511f3334fcb0a759c /model/context-model/src/test | |
parent | f524b88f7675065c7d33bb019257e165de33230b (diff) |
Adding apex context-model module
Change-Id: Ia80b2caa0f76ecd7a80ece79e5cf88ac9de048ac
Issue-ID: POLICY-856
Signed-off-by: waqas.ikram <waqas.ikram@ericsson.com>
Diffstat (limited to 'model/context-model/src/test')
10 files changed, 1291 insertions, 0 deletions
diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextAlbums.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextAlbums.java new file mode 100644 index 000000000..476cda9a3 --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextAlbums.java @@ -0,0 +1,210 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.concepts; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.junit.Test; +import org.onap.apex.model.basicmodel.concepts.AxArtifactKey; +import org.onap.apex.model.basicmodel.concepts.AxValidationResult; +import org.onap.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbum; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbums; + +/** + * @author Liam Fallon (liam.fallon@ericsson.com) + */ +public class TestContextAlbums { + + @Test + public void testContextAlbums() { + assertNotNull(new AxContextAlbum()); + assertNotNull(new AxContextAlbum(new AxArtifactKey())); + assertNotNull(new AxContextAlbum(new AxArtifactKey(), "AlbumScope", false, new AxArtifactKey())); + + final AxArtifactKey albumKey = new AxArtifactKey("AlbumName", "0.0.1"); + final AxArtifactKey albumSchemaKey = new AxArtifactKey("AlbumSchemaName", "0.0.1"); + + final AxContextAlbum album = new AxContextAlbum(albumKey, "AlbumScope", false, albumSchemaKey); + assertNotNull(album); + + final AxArtifactKey newKey = new AxArtifactKey("NewAlbumName", "0.0.1"); + album.setKey(newKey); + assertEquals("NewAlbumName:0.0.1", album.getKey().getID()); + assertEquals("NewAlbumName:0.0.1", album.getKeys().get(0).getID()); + album.setKey(albumKey); + + try { + album.setScope(""); + fail("test should throw an exception here"); + } catch (final Exception e) { + assertEquals("parameter \"scope\": value \"\", does not match regular expression \"[A-Za-z0-9\\-_]+\"", + e.getMessage()); + } + + album.setScope("NewAlbumScope"); + assertEquals("NewAlbumScope", album.getScope()); + + assertEquals(false, album.isWritable()); + album.setWritable(true); + assertEquals(true, album.isWritable()); + + final AxArtifactKey newSchemaKey = new AxArtifactKey("NewAlbumSchemaName", "0.0.1"); + album.setItemSchema(newSchemaKey); + assertEquals("NewAlbumSchemaName:0.0.1", album.getItemSchema().getID()); + album.setItemSchema(albumSchemaKey); + + AxValidationResult result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + album.setKey(AxArtifactKey.getNullKey()); + result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + album.setKey(newKey); + result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + album.setScope("UNDEFINED"); + result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + album.setScope("NewAlbumScope"); + result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + album.setItemSchema(AxArtifactKey.getNullKey()); + result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + album.setItemSchema(albumSchemaKey); + result = new AxValidationResult(); + result = album.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + album.clean(); + + final AxContextAlbum clonedAlbum = new AxContextAlbum(album); + assertEquals( + "AxContextAlbum:(key=AxArtifactKey:(name=NewAlbumName,version=0.0.1),scope=NewAlbumScope,isWritable=true,itemSchema=AxArtifactKey:(name=AlbumSchemaName,version=0.0.1))", + clonedAlbum.toString()); + + assertFalse(album.hashCode() == 0); + + assertTrue(album.equals(album)); + assertTrue(album.equals(clonedAlbum)); + assertFalse(album.equals(null)); + assertFalse(album.equals("Hello")); + assertFalse(album.equals(new AxContextAlbum(new AxArtifactKey(), "Scope", false, AxArtifactKey.getNullKey()))); + assertFalse(album.equals(new AxContextAlbum(newKey, "Scope", false, AxArtifactKey.getNullKey()))); + assertFalse(album.equals(new AxContextAlbum(newKey, "NewAlbumScope", false, AxArtifactKey.getNullKey()))); + assertFalse(album.equals(new AxContextAlbum(newKey, "NewAlbumScope", true, AxArtifactKey.getNullKey()))); + assertTrue(album.equals(new AxContextAlbum(newKey, "NewAlbumScope", true, albumSchemaKey))); + + assertEquals(0, album.compareTo(album)); + assertEquals(0, album.compareTo(clonedAlbum)); + assertNotEquals(0, album.compareTo(null)); + assertNotEquals(0, album.compareTo(new AxArtifactKey())); + assertNotEquals(0, + album.compareTo(new AxContextAlbum(new AxArtifactKey(), "Scope", false, AxArtifactKey.getNullKey()))); + assertNotEquals(0, album.compareTo(new AxContextAlbum(newKey, "Scope", false, AxArtifactKey.getNullKey()))); + assertNotEquals(0, + album.compareTo(new AxContextAlbum(newKey, "NewAlbumScope", false, AxArtifactKey.getNullKey()))); + assertNotEquals(0, + album.compareTo(new AxContextAlbum(newKey, "NewAlbumScope", true, AxArtifactKey.getNullKey()))); + assertEquals(0, album.compareTo(new AxContextAlbum(newKey, "NewAlbumScope", true, albumSchemaKey))); + + final AxContextAlbums albums = new AxContextAlbums(); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + // Observation, no albums in album map + albums.setKey(new AxArtifactKey("AlbumsKey", "0.0.1")); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.OBSERVATION, result.getValidationResult()); + + albums.getAlbumsMap().put(newKey, album); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + albums.getAlbumsMap().put(AxArtifactKey.getNullKey(), null); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + albums.getAlbumsMap().remove(AxArtifactKey.getNullKey()); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + albums.getAlbumsMap().put(new AxArtifactKey("NullValueKey", "0.0.1"), null); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + albums.getAlbumsMap().remove(new AxArtifactKey("NullValueKey", "0.0.1")); + result = new AxValidationResult(); + result = albums.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + albums.clean(); + + final AxContextAlbums clonedAlbums = new AxContextAlbums(albums); + assertTrue(clonedAlbums.toString() + .startsWith("AxContextAlbums:(AxContextAlbums:(key=AxArtifactKey:(name=AlbumsKey,version=0.0.1)")); + + assertFalse(albums.hashCode() == 0); + + assertTrue(albums.equals(albums)); + assertTrue(albums.equals(clonedAlbums)); + assertFalse(albums.equals(null)); + assertFalse(albums.equals("Hello")); + assertFalse(albums.equals(new AxContextAlbums(new AxArtifactKey()))); + + assertEquals(0, albums.compareTo(albums)); + assertEquals(0, albums.compareTo(clonedAlbums)); + assertNotEquals(0, albums.compareTo(null)); + assertNotEquals(0, albums.compareTo(new AxArtifactKey())); + assertNotEquals(0, albums.compareTo(new AxContextAlbums(new AxArtifactKey()))); + + clonedAlbums.get(newKey).setScope("YetAnotherScope"); + assertNotEquals(0, albums.compareTo(clonedAlbums)); + + assertEquals("NewAlbumName", albums.get("NewAlbumName").getKey().getName()); + assertEquals("NewAlbumName", albums.get("NewAlbumName", "0.0.1").getKey().getName()); + assertEquals(1, albums.getAll("NewAlbumName", "0.0.1").size()); + assertEquals(0, albums.getAll("NonExistantAlbumName").size()); + } +} diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextModel.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextModel.java new file mode 100644 index 000000000..cab40f316 --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextModel.java @@ -0,0 +1,82 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.concepts; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.onap.apex.model.basicmodel.concepts.AxArtifactKey; +import org.onap.apex.model.basicmodel.concepts.AxKeyInformation; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbums; +import org.onap.apex.model.contextmodel.concepts.AxContextModel; +import org.onap.apex.model.contextmodel.concepts.AxContextSchemas; + +/** + * @author Liam Fallon (liam.fallon@ericsson.com) + */ +public class TestContextModel { + + @Test + public void test() { + assertNotNull(new AxContextModel()); + assertNotNull(new AxContextModel(new AxArtifactKey())); + assertNotNull(new AxContextModel(new AxArtifactKey(), new AxContextSchemas(), new AxKeyInformation())); + assertNotNull(new AxContextModel(new AxArtifactKey(), new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation())); + + final AxArtifactKey modelKey = new AxArtifactKey("ModelKey", "0.0.1"); + final AxArtifactKey schemasKey = new AxArtifactKey("SchemasKey", "0.0.1"); + final AxArtifactKey albumsKey = new AxArtifactKey("SchemasKey", "0.0.1"); + final AxArtifactKey keyInfoKey = new AxArtifactKey("SchemasKey", "0.0.1"); + final AxContextModel model = new AxContextModel(modelKey, new AxContextSchemas(schemasKey), new AxContextAlbums(albumsKey), new AxKeyInformation(keyInfoKey)); + model.register(); + + model.clean(); + assertNotNull(model); + assertEquals("AxContextModel:(AxContextModel:(key=AxArtifactKey:", model.toString().substring(0, 50)); + + final AxContextModel clonedModel = new AxContextModel(model); + + assertFalse(model.hashCode() == 0); + + assertTrue(model.equals(model)); + assertTrue(model.equals(clonedModel)); + assertFalse(model.equals("Hello")); + assertFalse(model.equals(new AxContextModel(new AxArtifactKey()))); + assertFalse(model.equals(new AxContextModel(new AxArtifactKey(), new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation()))); + assertFalse(model.equals(new AxContextModel(modelKey, new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation()))); + assertFalse(model.equals(new AxContextModel(modelKey, new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation(keyInfoKey)))); + assertFalse(model.equals(new AxContextModel(modelKey, new AxContextSchemas(schemasKey), new AxContextAlbums(), new AxKeyInformation(keyInfoKey)))); + assertTrue(model.equals(new AxContextModel(modelKey, new AxContextSchemas(schemasKey), new AxContextAlbums(albumsKey), new AxKeyInformation(keyInfoKey)))); + + assertEquals(0, model.compareTo(model)); + assertEquals(0, model.compareTo(clonedModel)); + assertNotEquals(0, model.compareTo(new AxArtifactKey())); + assertNotEquals(0, model.compareTo(new AxContextModel(new AxArtifactKey(), new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation()))); + assertNotEquals(0, model.compareTo(new AxContextModel(modelKey, new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation()))); + assertNotEquals(0, model.compareTo(new AxContextModel(modelKey, new AxContextSchemas(), new AxContextAlbums(), new AxKeyInformation(keyInfoKey)))); + assertNotEquals(0, model.compareTo(new AxContextModel(modelKey, new AxContextSchemas(schemasKey), new AxContextAlbums(), new AxKeyInformation(keyInfoKey)))); + assertEquals(0, model.compareTo(new AxContextModel(modelKey, new AxContextSchemas(schemasKey), new AxContextAlbums(albumsKey), new AxKeyInformation(keyInfoKey)))); + } +} diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextSchemas.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextSchemas.java new file mode 100644 index 000000000..1e81c5a95 --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/concepts/TestContextSchemas.java @@ -0,0 +1,196 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.concepts; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.junit.Test; +import org.onap.apex.model.basicmodel.concepts.AxArtifactKey; +import org.onap.apex.model.basicmodel.concepts.AxValidationResult; +import org.onap.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult; +import org.onap.apex.model.contextmodel.concepts.AxContextSchema; +import org.onap.apex.model.contextmodel.concepts.AxContextSchemas; + +/** + * @author Liam Fallon (liam.fallon@ericsson.com) + */ +public class TestContextSchemas { + + @Test + public void testContextSchemas() { + assertNotNull(new AxContextSchema()); + assertNotNull(new AxContextSchema(new AxArtifactKey(), "SchemaFlavour", "SchemaDefinition")); + + final AxContextSchema schema = + new AxContextSchema(new AxArtifactKey("SchemaName", "0.0.1"), "SchemaFlavour", "SchemaDefinition"); + assertNotNull(schema); + + final AxArtifactKey newKey = new AxArtifactKey("NewSchemaName", "0.0.1"); + schema.setKey(newKey); + assertEquals("NewSchemaName:0.0.1", schema.getKey().getID()); + assertEquals("NewSchemaName:0.0.1", schema.getKeys().get(0).getID()); + + try { + schema.setSchemaFlavour(""); + fail("test should throw an exception here"); + } catch (final Exception e) { + assertEquals( + "parameter \"schemaFlavour\": value \"\", does not match regular expression \"[A-Za-z0-9\\-_]+\"", + e.getMessage()); + } + + schema.setSchemaFlavour("NewSchemaFlavour"); + assertEquals("NewSchemaFlavour", schema.getSchemaFlavour()); + + schema.setSchema("NewSchemaDefinition"); + assertEquals("NewSchemaDefinition", schema.getSchema()); + + AxValidationResult result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schema.setKey(AxArtifactKey.getNullKey()); + result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + schema.setKey(newKey); + result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schema.setSchemaFlavour("UNDEFINED"); + result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + schema.setSchemaFlavour("NewSchemaFlavour"); + result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schema.setSchema(""); + result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + schema.setSchema("NewSchemaDefinition"); + result = new AxValidationResult(); + result = schema.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schema.clean(); + + final AxContextSchema clonedSchema = new AxContextSchema(schema); + assertEquals( + "AxContextSchema:(key=AxArtifactKey:(name=NewSchemaName,version=0.0.1),schemaFlavour=NewSchemaFlavour,schemaDefinition=NewSchemaDefinition)", + clonedSchema.toString()); + + assertFalse(schema.hashCode() == 0); + + assertTrue(schema.equals(schema)); + assertTrue(schema.equals(clonedSchema)); + assertFalse(schema.equals(null)); + assertFalse(schema.equals("Hello")); + assertFalse(schema.equals(new AxContextSchema(new AxArtifactKey(), "Flavour", "Def"))); + assertFalse(schema.equals(new AxContextSchema(newKey, "Flavour", "Def"))); + assertFalse(schema.equals(new AxContextSchema(newKey, "NewSchemaFlavour", "Def"))); + assertTrue(schema.equals(new AxContextSchema(newKey, "NewSchemaFlavour", "NewSchemaDefinition"))); + + assertEquals(0, schema.compareTo(schema)); + assertEquals(0, schema.compareTo(clonedSchema)); + assertNotEquals(0, schema.compareTo(null)); + assertNotEquals(0, schema.compareTo(new AxArtifactKey())); + assertNotEquals(0, schema.compareTo(new AxContextSchema(new AxArtifactKey(), "Flavour", "Def"))); + assertNotEquals(0, schema.compareTo(new AxContextSchema(newKey, "Flavour", "Def"))); + assertNotEquals(0, schema.compareTo(new AxContextSchema(newKey, "NewSchemaFlavour", "Def"))); + assertEquals(0, schema.compareTo(new AxContextSchema(newKey, "NewSchemaFlavour", "NewSchemaDefinition"))); + + final AxContextSchemas schemas = new AxContextSchemas(); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + // Still invalid, no schemas in schema map + schemas.setKey(new AxArtifactKey("SchemasKey", "0.0.1")); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + schemas.getSchemasMap().put(newKey, schema); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schemas.getSchemasMap().put(AxArtifactKey.getNullKey(), null); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + schemas.getSchemasMap().remove(AxArtifactKey.getNullKey()); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schemas.getSchemasMap().put(new AxArtifactKey("NullValueKey", "0.0.1"), null); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.INVALID, result.getValidationResult()); + + schemas.getSchemasMap().remove(new AxArtifactKey("NullValueKey", "0.0.1")); + result = new AxValidationResult(); + result = schemas.validate(result); + assertEquals(ValidationResult.VALID, result.getValidationResult()); + + schemas.clean(); + + final AxContextSchemas clonedSchemas = new AxContextSchemas(schemas); + assertTrue(clonedSchemas.toString() + .startsWith("AxContextSchemas:(key=AxArtifactKey:(name=SchemasKey,version=0.0.1),")); + + assertFalse(schemas.hashCode() == 0); + + assertTrue(schemas.equals(schemas)); + assertTrue(schemas.equals(clonedSchemas)); + assertFalse(schemas.equals(null)); + assertFalse(schemas.equals("Hello")); + assertFalse(schemas.equals(new AxContextSchemas(new AxArtifactKey()))); + + assertEquals(0, schemas.compareTo(schemas)); + assertEquals(0, schemas.compareTo(clonedSchemas)); + assertNotEquals(0, schemas.compareTo(null)); + assertNotEquals(0, schemas.compareTo(new AxArtifactKey())); + assertNotEquals(0, schemas.compareTo(new AxContextSchemas(new AxArtifactKey()))); + + clonedSchemas.get(newKey).setSchemaFlavour("YetAnotherFlavour"); + assertNotEquals(0, schemas.compareTo(clonedSchemas)); + + assertEquals("NewSchemaName", schemas.get("NewSchemaName").getKey().getName()); + assertEquals("NewSchemaName", schemas.get("NewSchemaName", "0.0.1").getKey().getName()); + assertEquals(1, schemas.getAll("NewSchemaName", "0.0.1").size()); + assertEquals(0, schemas.getAll("NonExistantSchemaName").size()); + } +} diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestApexContextModel.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestApexContextModel.java new file mode 100644 index 000000000..0723a6827 --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestApexContextModel.java @@ -0,0 +1,127 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.handling; + +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.apex.model.basicmodel.concepts.AxValidationResult; +import org.onap.apex.model.basicmodel.dao.DAOParameters; +import org.onap.apex.model.basicmodel.test.TestApexModel; +import org.onap.apex.model.contextmodel.concepts.AxContextModel; + +public class TestApexContextModel { + private Connection connection; + TestApexModel<AxContextModel> testApexModel; + + @Before + public void setup() throws Exception { + Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); + connection = DriverManager.getConnection("jdbc:derby:memory:apex_test;create=true"); + + testApexModel = new TestApexModel<AxContextModel>(AxContextModel.class, new TestApexContextModelCreator()); + } + + @After + public void teardown() throws Exception { + connection.close(); + new File("derby.log").delete(); + } + + @Test + public void testModelValid() throws Exception { + final AxValidationResult result = testApexModel.testApexModelValid(); + assertTrue(result.toString().equals(VALID_MODEL_STRING)); + } + + @Test + public void testApexModelVaidateObservation() throws Exception { + final AxValidationResult result = testApexModel.testApexModelVaidateObservation(); + assertTrue(result.toString().equals(OBSERVATION_MODEL_STRING)); + } + + @Test + public void testApexModelVaidateWarning() throws Exception { + final AxValidationResult result = testApexModel.testApexModelVaidateWarning(); + assertTrue(result.toString().equals(WARNING_MODEL_STRING)); + } + + @Test + public void testModelVaidateInvalidModel() throws Exception { + final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel(); + assertTrue(result.toString().equals(INVALID_MODEL_STRING)); + } + + @Test + public void testModelVaidateMalstructured() throws Exception { + final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured(); + assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING)); + } + + @Test + public void testModelWriteReadXML() throws Exception { + testApexModel.testApexModelWriteReadXML(); + } + + @Test + public void testModelWriteReadJSON() throws Exception { + testApexModel.testApexModelWriteReadJSON(); + } + + @Test + public void testModelWriteReadJPA() throws Exception { + final DAOParameters daoParameters = new DAOParameters(); + daoParameters.setPluginClass("org.onap.apex.model.basicmodel.dao.impl.DefaultApexDao"); + daoParameters.setPersistenceUnit("DAOTest"); + + testApexModel.testApexModelWriteReadJPA(daoParameters); + } + + private static final String VALID_MODEL_STRING = "***validation of model successful***"; + + private static final String OBSERVATION_MODEL_STRING = + "\n" + "***observations noted during validation of model***\n" + + "AxArtifactKey:(name=contextAlbum1,version=0.0.1):org.onap.apex.model.basicmodel.concepts.AxKeyInfo:OBSERVATION:description is blank\n" + + "********************************"; + + private static final String WARNING_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n" + + "AxArtifactKey:(name=contextAlbum1,version=0.0.1):org.onap.apex.model.basicmodel.concepts.AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n" + + "********************************"; + + private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n" + + "AxArtifactKey:(name=StringType,version=0.0.1):org.onap.apex.model.contextmodel.concepts.AxContextSchema:INVALID:no schemaDefinition specified, schemaDefinition may not be blank\n" + + "AxArtifactKey:(name=contextAlbum0,version=0.0.1):org.onap.apex.model.contextmodel.concepts.AxContextAlbum:INVALID:scope is not defined\n" + + "********************************"; + + private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n" + + "AxArtifactKey:(name=ContextModel,version=0.0.1):org.onap.apex.model.contextmodel.concepts.AxContextModel:INVALID:key information not found for key AxArtifactKey:(name=contextAlbum1,version=0.0.2)\n" + + "AxArtifactKey:(name=contextAlbum1,version=0.0.1):org.onap.apex.model.contextmodel.concepts.AxContextModel:WARNING:key not found for key information entry\n" + + "AxArtifactKey:(name=ContextSchemas,version=0.0.1):org.onap.apex.model.contextmodel.concepts.AxContextSchemas:INVALID:key on schemas entry AxArtifactKey:(name=MapType,version=0.0.1) does not equal entry key AxArtifactKey:(name=MapType,version=0.0.2)\n" + + "AxArtifactKey:(name=contextAlbums,version=0.0.1):org.onap.apex.model.contextmodel.concepts.AxContextAlbums:INVALID:key on context album entry key AxArtifactKey:(name=contextAlbum1,version=0.0.1) does not equal context album value key AxArtifactKey:(name=contextAlbum1,version=0.0.2)\n" + + "********************************"; + +} diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestApexContextModelCreator.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestApexContextModelCreator.java new file mode 100644 index 000000000..b53d8d04d --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestApexContextModelCreator.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.handling; + +import java.util.UUID; + +import org.onap.apex.model.basicmodel.concepts.AxArtifactKey; +import org.onap.apex.model.basicmodel.concepts.AxKeyInfo; +import org.onap.apex.model.basicmodel.concepts.AxKeyInformation; +import org.onap.apex.model.basicmodel.test.TestApexModelCreator; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbum; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbums; +import org.onap.apex.model.contextmodel.concepts.AxContextModel; +import org.onap.apex.model.contextmodel.concepts.AxContextSchema; +import org.onap.apex.model.contextmodel.concepts.AxContextSchemas; + +public class TestApexContextModelCreator implements TestApexModelCreator<AxContextModel> { + + @Override + public AxContextModel getModel() { + final AxContextSchema schema0 = new AxContextSchema(new AxArtifactKey("StringType", "0.0.1"), "Java", "com.ericsson.apex.concept.TestContextItem000"); + final AxContextSchema schema1 = new AxContextSchema(new AxArtifactKey("MapType", "0.0.1"), "Java", "com.ericsson.apex.concept.TestContextItem00A"); + + final AxContextSchemas contextSchemas = new AxContextSchemas(new AxArtifactKey("ContextSchemas", "0.0.1")); + contextSchemas.getSchemasMap().put(schema0.getKey(), schema0); + contextSchemas.getSchemasMap().put(schema1.getKey(), schema1); + + final AxContextAlbum contextAlbum0 = new AxContextAlbum(new AxArtifactKey("contextAlbum0", "0.0.1"), "APPLICATION", true, schema0.getKey()); + final AxContextAlbum contextAlbum1 = new AxContextAlbum(new AxArtifactKey("contextAlbum1", "0.0.1"), "GLOBAL" , false, schema1.getKey()); + + final AxContextAlbums axContext = new AxContextAlbums(new AxArtifactKey("contextAlbums", "0.0.1")); + axContext.getAlbumsMap().put(contextAlbum0.getKey(), contextAlbum0); + axContext.getAlbumsMap().put(contextAlbum1.getKey(), contextAlbum1); + + final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInfoMapKey", "0.0.1")); + final AxContextModel contextModel = new AxContextModel(new AxArtifactKey("ContextModel", "0.0.1"), contextSchemas, axContext, keyInformation); + + contextModel.setKeyInformation(keyInformation); + contextModel.getKeyInformation().getKeyInfoMap().put(schema0 .getKey(), new AxKeyInfo(schema0 .getKey(), UUID.fromString("00000000-0000-0000-0000-000000000001"), "axContextSchema0")); + contextModel.getKeyInformation().getKeyInfoMap().put(schema1 .getKey(), new AxKeyInfo(schema1 .getKey(), UUID.fromString("00000000-0000-0000-0000-000000000002"), "axContextSchema1")); + contextModel.getKeyInformation().getKeyInfoMap().put(contextSchemas.getKey(), new AxKeyInfo(contextSchemas.getKey(), UUID.fromString("00000000-0000-0000-0000-000000000003"), "ContextSchemas")); + contextModel.getKeyInformation().getKeyInfoMap().put(contextAlbum0 .getKey(), new AxKeyInfo(contextAlbum0 .getKey(), UUID.fromString("00000000-0000-0000-0000-000000000004"), "contextAlbum0")); + contextModel.getKeyInformation().getKeyInfoMap().put(contextAlbum1 .getKey(), new AxKeyInfo(contextAlbum1 .getKey(), UUID.fromString("00000000-0000-0000-0000-000000000005"), "contextAlbum1")); + contextModel.getKeyInformation().getKeyInfoMap().put(axContext .getKey(), new AxKeyInfo(axContext .getKey(), UUID.fromString("00000000-0000-0000-0000-000000000006"), "axContext")); + contextModel.getKeyInformation().getKeyInfoMap().put(contextModel .getKey(), new AxKeyInfo(contextModel .getKey(), UUID.fromString("00000000-0000-0000-0000-000000000007"), "contextModel")); + contextModel.getKeyInformation().getKeyInfoMap().put(keyInformation.getKey(), new AxKeyInfo(keyInformation.getKey(), UUID.fromString("00000000-0000-0000-0000-000000000008"), "keyInformation")); + + return contextModel; + } + + @Override + public AxContextModel getInvalidModel() { + final AxContextModel contextModel = getModel(); + + contextModel.getAlbums().get(new AxArtifactKey("contextAlbum0", "0.0.1")).setScope("UNDEFINED"); + + contextModel.getSchemas().get(new AxArtifactKey("StringType", "0.0.1")).setSchema(""); + + return contextModel; + } + + public AxContextModel getMalstructuredModel() { + final AxContextModel contextModel = getModel(); + + contextModel.getAlbums().get(new AxArtifactKey("contextAlbum1", "0.0.1")).setKey(new AxArtifactKey("contextAlbum1", "0.0.2"));; + contextModel.getSchemas().get(new AxArtifactKey("MapType", "0.0.1")).setKey(new AxArtifactKey("MapType", "0.0.2"));; + + return contextModel; + } + + @Override + public AxContextModel getObservationModel() { + final AxContextModel contextModel = getModel(); + + contextModel.getKeyInformation().get("contextAlbum1", "0.0.1").setDescription(""); + + return contextModel; + } + + @Override + public AxContextModel getWarningModel() { + final AxContextModel contextModel = getModel(); + + contextModel.getKeyInformation().get("contextAlbum1", "0.0.1").setUuid(UUID.fromString("00000000-0000-0000-0000-000000000000")); + + return contextModel; + } +} diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestContextComparison.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestContextComparison.java new file mode 100644 index 000000000..fe87509b9 --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestContextComparison.java @@ -0,0 +1,164 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.handling; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; +import org.onap.apex.model.basicmodel.concepts.AxArtifactKey; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbum; +import org.onap.apex.model.contextmodel.concepts.AxContextModel; +import org.onap.apex.model.contextmodel.concepts.AxContextSchema; +import org.onap.apex.model.contextmodel.handling.ContextComparer; +import org.onap.policy.apex.model.utilities.comparison.KeyedMapDifference; + +/** + * @author Liam Fallon (liam.fallon@ericsson.com) + */ +public class TestContextComparison { + private AxContextModel emptyModel; + private AxContextModel fullModel; + private AxContextModel noGlobalContextModel; + private AxContextModel shellModel; + private AxContextModel singleEntryModel; + + @Before + public void getContext() { + final TestContextComparisonFactory factory = new TestContextComparisonFactory(); + emptyModel = factory.getEmptyModel(); + fullModel = factory.getFullModel(); + noGlobalContextModel = factory.getNoGlobalContextModel(); + shellModel = factory.getShellModel(); + singleEntryModel = factory.getSingleEntryModel(); + } + + @Test + public void testEmptyEmpty() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(emptyModel.getSchemas(), emptyModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(emptyModel.getSchemas().getSchemasMap().equals(schemaResult.getIdenticalValues())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(emptyModel.getAlbums(), emptyModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(emptyModel.getAlbums().getAlbumsMap().equals(albumResult.getIdenticalValues())); + } + + @Test + public void testEmptyFull() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(emptyModel.getSchemas(), fullModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(fullModel.getSchemas().getSchemasMap().equals(schemaResult.getRightOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(emptyModel.getAlbums(), fullModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(fullModel.getAlbums().getAlbumsMap().equals(albumResult.getRightOnly())); + } + + @Test + public void testFullEmpty() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(fullModel.getSchemas(), emptyModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(fullModel.getSchemas().getSchemasMap().equals(schemaResult.getLeftOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(fullModel.getAlbums(), emptyModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(fullModel.getAlbums().getAlbumsMap().equals(albumResult.getLeftOnly())); + } + + @Test + public void testEmptyNoGlobalContext() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(emptyModel.getSchemas(), noGlobalContextModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(noGlobalContextModel.getSchemas().getSchemasMap().equals(schemaResult.getRightOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(emptyModel.getAlbums(), noGlobalContextModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(noGlobalContextModel.getAlbums().getAlbumsMap().equals(albumResult.getRightOnly())); + } + + @Test + public void testNoGlobalContextEmpty() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(noGlobalContextModel.getSchemas(), emptyModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(noGlobalContextModel.getSchemas().getSchemasMap().equals(schemaResult.getLeftOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(noGlobalContextModel.getAlbums(), emptyModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(noGlobalContextModel.getAlbums().getAlbumsMap().equals(albumResult.getLeftOnly())); + } + + @Test + public void testEmptyShell() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(emptyModel.getSchemas(), shellModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(shellModel.getSchemas().getSchemasMap().equals(schemaResult.getRightOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(emptyModel.getAlbums(), shellModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(shellModel.getAlbums().getAlbumsMap().equals(albumResult.getRightOnly())); + } + + @Test + public void testShellEmpty() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(shellModel.getSchemas(), emptyModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(shellModel.getSchemas().getSchemasMap().equals(schemaResult.getLeftOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(shellModel.getAlbums(), emptyModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(shellModel.getAlbums().getAlbumsMap().equals(albumResult.getLeftOnly())); + } + + @Test + public void testEmptySingleEntry() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(emptyModel.getSchemas(), singleEntryModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(singleEntryModel.getSchemas().getSchemasMap().equals(schemaResult.getRightOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(emptyModel.getAlbums(), singleEntryModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(singleEntryModel.getAlbums().getAlbumsMap().equals(albumResult.getRightOnly())); + } + + @Test + public void testSingleEntryEmpty() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(singleEntryModel.getSchemas(), emptyModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(singleEntryModel.getSchemas().getSchemasMap().equals(schemaResult.getLeftOnly())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(singleEntryModel.getAlbums(), emptyModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(singleEntryModel.getAlbums().getAlbumsMap().equals(albumResult.getLeftOnly())); + } + + @Test + public void testFullFull() { + final KeyedMapDifference<AxArtifactKey, AxContextSchema> schemaResult = new ContextComparer().compare(fullModel.getSchemas(), fullModel.getSchemas()); + assertNotNull(schemaResult); + assertTrue(fullModel.getSchemas().getSchemasMap().equals(schemaResult.getIdenticalValues())); + + final KeyedMapDifference<AxArtifactKey, AxContextAlbum> albumResult = new ContextComparer().compare(fullModel.getAlbums(), fullModel.getAlbums()); + assertNotNull(albumResult); + assertTrue(fullModel.getAlbums().getAlbumsMap().equals(albumResult.getIdenticalValues())); + } +} diff --git a/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestContextComparisonFactory.java b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestContextComparisonFactory.java new file mode 100644 index 000000000..1850c222d --- /dev/null +++ b/model/context-model/src/test/java/org/onap/apex/model/contextmodel/handling/TestContextComparisonFactory.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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.apex.model.contextmodel.handling; + +import org.onap.apex.model.basicmodel.concepts.AxArtifactKey; +import org.onap.apex.model.contextmodel.concepts.AxContextAlbum; +import org.onap.apex.model.contextmodel.concepts.AxContextModel; +import org.onap.apex.model.contextmodel.concepts.AxContextSchema; + +/** + * This class creates sample Policy Models + * + * @author Liam Fallon (liam.fallon@ericsson.com) + */ +public class TestContextComparisonFactory { + + public AxContextModel getFullModel() { + final AxContextSchema testContextSchema000 = new AxContextSchema(new AxArtifactKey("TestContextSchema000", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema000"); + final AxContextSchema testContextSchema00A = new AxContextSchema(new AxArtifactKey("TestContextSchema00A", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema00A"); + final AxContextSchema testContextSchema00C = new AxContextSchema(new AxArtifactKey("TestContextSchema00C", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema00C"); + + final AxContextAlbum externalContextAlbum = new AxContextAlbum(new AxArtifactKey("ExternalContextAlbum", "0.0.1"), "EXTERNAL", false, + testContextSchema000.getKey()); + final AxContextAlbum globalContextAlbum = new AxContextAlbum(new AxArtifactKey("GlobalContextAlbum", "0.0.1"), "GLOBAL", true, testContextSchema00A.getKey()); + final AxContextAlbum policy0ContextAlbum = new AxContextAlbum(new AxArtifactKey("Policy0ContextAlbum", "0.0.1"), "APPLICATION", true, + testContextSchema00C.getKey()); + final AxContextAlbum policy1ContextAlbum = new AxContextAlbum(new AxArtifactKey("Policy1ContextAlbum ", "0.0.1"), "APPLICATION", true, + testContextSchema00C.getKey()); + + final AxContextModel contextModel = new AxContextModel(new AxArtifactKey("ContextModel", "0.0.1")); + contextModel.getSchemas().getSchemasMap().put(testContextSchema000.getKey(), testContextSchema000); + contextModel.getSchemas().getSchemasMap().put(testContextSchema00A.getKey(), testContextSchema00A); + contextModel.getSchemas().getSchemasMap().put(testContextSchema00C.getKey(), testContextSchema00C); + + contextModel.getAlbums().getAlbumsMap().put(externalContextAlbum.getKey(), externalContextAlbum); + contextModel.getAlbums().getAlbumsMap().put(globalContextAlbum.getKey(), globalContextAlbum); + contextModel.getAlbums().getAlbumsMap().put(policy0ContextAlbum.getKey(), policy0ContextAlbum); + contextModel.getAlbums().getAlbumsMap().put(policy1ContextAlbum.getKey(), policy1ContextAlbum); + + return contextModel; + } + + public AxContextModel getEmptyModel() { + return new AxContextModel(new AxArtifactKey("Context", "0.0.1")); + } + + public AxContextModel getShellModel() { + final AxContextSchema testContextSchema000 = new AxContextSchema(new AxArtifactKey("TestContextSchema000", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema000"); + final AxContextSchema testContextSchema00A = new AxContextSchema(new AxArtifactKey("TestContextSchema00A", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema00A"); + final AxContextSchema testContextSchema00C = new AxContextSchema(new AxArtifactKey("TestContextSchema00C", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema00C"); + + final AxContextModel contextModel = new AxContextModel(new AxArtifactKey("ContextModel", "0.0.1")); + contextModel.getSchemas().getSchemasMap().put(testContextSchema000.getKey(), testContextSchema000); + contextModel.getSchemas().getSchemasMap().put(testContextSchema00A.getKey(), testContextSchema00A); + contextModel.getSchemas().getSchemasMap().put(testContextSchema00C.getKey(), testContextSchema00C); + + return contextModel; + } + + public AxContextModel getSingleEntryModel() { + final AxContextSchema testContextSchema000 = new AxContextSchema(new AxArtifactKey("TestContextSchema000", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema000"); + + final AxContextAlbum policy1ContextAlbum = new AxContextAlbum(new AxArtifactKey("Policy1ContextAlbum ", "0.0.1"), "APPLICATION", true, + testContextSchema000.getKey()); + + final AxContextModel contextModel = new AxContextModel(new AxArtifactKey("ContextModel", "0.0.1")); + contextModel.getSchemas().getSchemasMap().put(testContextSchema000.getKey(), testContextSchema000); + + contextModel.getAlbums().getAlbumsMap().put(policy1ContextAlbum.getKey(), policy1ContextAlbum); + + return contextModel; + } + + public AxContextModel getNoGlobalContextModel() { + final AxContextSchema testContextSchema000 = new AxContextSchema(new AxArtifactKey("TestContextSchema000", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema000"); + final AxContextSchema testContextSchema00C = new AxContextSchema(new AxArtifactKey("TestContextSchema00C", "0.0.1"), "JAVA", + "com.ericsson.apex.concept.TestContextSchema00C"); + + final AxContextAlbum externalContextAlbum = new AxContextAlbum(new AxArtifactKey("ExternalContextAlbum", "0.0.1"), "EXTERNAL", false, + testContextSchema000.getKey()); + final AxContextAlbum policy0ContextAlbum = new AxContextAlbum(new AxArtifactKey("Policy0ContextAlbum", "0.0.1"), "APPLICATION", true, + testContextSchema00C.getKey()); + final AxContextAlbum policy1ContextAlbum = new AxContextAlbum(new AxArtifactKey("Policy1ContextAlbum ", "0.0.1"), "APPLICATION", true, + testContextSchema00C.getKey()); + + final AxContextModel contextModel = new AxContextModel(new AxArtifactKey("ContextModel", "0.0.1")); + contextModel.getSchemas().getSchemasMap().put(testContextSchema000.getKey(), testContextSchema000); + contextModel.getSchemas().getSchemasMap().put(testContextSchema00C.getKey(), testContextSchema00C); + + contextModel.getAlbums().getAlbumsMap().put(externalContextAlbum.getKey(), externalContextAlbum); + contextModel.getAlbums().getAlbumsMap().put(policy0ContextAlbum.getKey(), policy0ContextAlbum); + contextModel.getAlbums().getAlbumsMap().put(policy1ContextAlbum.getKey(), policy1ContextAlbum); + + return contextModel; + } +} diff --git a/model/context-model/src/test/resources/META-INF/persistence.xml b/model/context-model/src/test/resources/META-INF/persistence.xml new file mode 100644 index 000000000..d9203b4be --- /dev/null +++ b/model/context-model/src/test/resources/META-INF/persistence.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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========================================================= +--> + +<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> + <persistence-unit name="DAOTest" transaction-type="RESOURCE_LOCAL"> + <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> + + <class>org.onap.apex.model.basicmodel.dao.converters.CDATAConditioner</class> + <class>org.onap.apex.model.basicmodel.dao.converters.UUID2String</class> + <class>org.onap.apex.model.basicmodel.concepts.AxArtifactKey</class> + <class>org.onap.apex.model.basicmodel.concepts.AxConcept</class> + <class>org.onap.apex.model.basicmodel.concepts.AxKeyInfo</class> + <class>org.onap.apex.model.basicmodel.concepts.AxKeyInformation</class> + <class>org.onap.apex.model.basicmodel.concepts.AxModel</class> + <class>org.onap.apex.model.basicmodel.concepts.TestEntity</class> + <class>org.onap.apex.model.contextmodel.concepts.AxContextSchema</class> + <class>org.onap.apex.model.contextmodel.concepts.AxContextSchemas</class> + <class>org.onap.apex.model.contextmodel.concepts.AxContextAlbum</class> + <class>org.onap.apex.model.contextmodel.concepts.AxContextAlbums</class> + <class>org.onap.apex.model.contextmodel.concepts.AxContextModel</class> + + <properties> + <property name="javax.persistence.jdbc.url" value="jdbc:derby:memory:apex_test" /> + <property name="javax.persistence.target-database" value="Derby" /> + <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" /> + + <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> + <property name="eclipselink.ddl-generation.output-mode" value="database" /> + <property name="eclipselink.logging.level" value="INFO" /> + </properties> + </persistence-unit> +</persistence> diff --git a/model/context-model/src/test/resources/json/ContextModel.json b/model/context-model/src/test/resources/json/ContextModel.json new file mode 100644 index 000000000..cbaabc63b --- /dev/null +++ b/model/context-model/src/test/resources/json/ContextModel.json @@ -0,0 +1,156 @@ +{ + "apexContextModel" : { + "key" : { + "name" : "contextModel", + "version" : "0.0.1" + }, + "keyInformation" : { + "key" : { + "name" : "KeyInfoMapKey", + "version" : "0.0.1" + }, + "keyInfoMap" : { + "keyInfoEntry" : [ { + "key" : { + "name" : "StringType", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000000", + "description" : "axContextType0" + }, { + "key" : { + "name" : "MapType", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000001", + "description" : "axContextType1" + }, { + "key" : { + "name" : "contextMap0", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000002", + "description" : "contextMap0" + }, { + "key" : { + "name" : "contextMap1", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000003", + "description" : "contextMap1" + }, { + "key" : { + "name" : "context", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000004", + "description" : "axContext" + }, { + "key" : { + "name" : "contextModel", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000005", + "description" : "contextModel" + }, { + "key" : { + "name" : "KeyInfoMapKey", + "version" : "0.0.1" + }, + "UUID" : "00000000-0000-0000-0000-000000000006", + "description" : "keyInformation" + } ] + } + }, + "context" : { + "key" : { + "name" : "context", + "version" : "0.0.1" + }, + "contextMaps" : { + "entry" : [ { + "key" : "contextMap0", + "value" : { + "key" : { + "name" : "contextMap0", + "version" : "0.0.1" + }, + "scope" : "APPLICATION", + "mapType" : "BAG", + "contextMap" : { + "contextItem" : [ { + "key" : "axContextItem0_0", + "contextType" : { + "key" : { + "name" : "StringType", + "version" : "0.0.1" + }, + "javaType" : "com.ericsson.apex.core.contextmodel.concepts.TestContextItem000" + }, + "isWritable" : true, + "valueString" : "" + }, { + "key" : "axContextItem0_1", + "contextType" : { + "key" : { + "name" : "MapType", + "version" : "0.0.1" + }, + "javaType" : "com.ericsson.apex.core.contextmodel.concepts.TestContextItem00A" + }, + "isWritable" : true, + "valueString" : "" + }, { + "key" : "axContextItem0_2", + "contextType" : { + "key" : { + "name" : "StringType", + "version" : "0.0.1" + }, + "javaType" : "com.ericsson.apex.core.contextmodel.concepts.TestContextItem000" + }, + "isWritable" : true, + "valueString" : "" + }, { + "key" : "axContextItem0_3", + "contextType" : { + "key" : { + "name" : "MapType", + "version" : "0.0.1" + }, + "javaType" : "com.ericsson.apex.core.contextmodel.concepts.TestContextItem00A" + }, + "isWritable" : true, + "valueString" : "" + } ] + } + } + }, { + "key" : "contextMap1", + "value" : { + "key" : { + "name" : "contextMap1", + "version" : "0.0.1" + }, + "scope" : "GLOBAL", + "mapType" : "SAMETYPE", + "templateContextItem" : { + "key" : "axTemplateContextItem", + "contextType" : { + "key" : { + "name" : "MapType", + "version" : "0.0.1" + }, + "javaType" : "com.ericsson.apex.core.contextmodel.concepts.TestContextItem00A" + }, + "isWritable" : true + }, + "contextMap" : { + "contextItem" : [ ] + } + } + } ] + } + } + } +}
\ No newline at end of file diff --git a/model/context-model/src/test/resources/logback-test.xml b/model/context-model/src/test/resources/logback-test.xml new file mode 100644 index 000000000..07bc02591 --- /dev/null +++ b/model/context-model/src/test/resources/logback-test.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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========================================================= +--> + +<configuration> + + <contextName>Apex</contextName> + <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> + <property name="LOG_DIR" value="${java.io.tmpdir}/apex_logging/" /> + + <!-- USE FOR STD OUT ONLY --> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> + + <logger name="org.infinispan" level="INFO" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger name="com.ericsson.apex.core.contextmodel" level="TRACE" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger name="org.apache.zookeeper.ClientCnxn" level="OFF" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger name="com.ericsson.apex.core" level="TRACE" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <appender name="FILE" class="ch.qos.logback.core.FileAppender"> + <file>${LOG_DIR}/apex.log</file> + <encoder> + <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level + %logger{26} - %msg %n %ex{full}</pattern> + </encoder> + </appender> + + <appender name="CTXT_FILE" class="ch.qos.logback.core.FileAppender"> + <file>${LOG_DIR}/apex_ctxt.log</file> + <encoder> + <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level + %logger{26} - %msg %n %ex{full}</pattern> + </encoder> + </appender> + + <logger name="com.ericsson.apex.core.context.impl.monitoring" level="TRACE" additivity="false"> + <appender-ref ref="CTXT_FILE" /> + </logger> + + <logger name="com.ericsson.apex.core.context" level="INFO" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> +</configuration> |