diff options
author | MariusArhaug <mariusarhaug@hotmail.com> | 2024-04-09 14:28:26 +0200 |
---|---|---|
committer | MariusArhaug <mariusarhaug@hotmail.com> | 2024-04-09 14:28:26 +0200 |
commit | 0959e56737c2accf6fbcd8638ea3de73941bd07e (patch) | |
tree | d0f73c8b26dafd165ba5acfd593e03a792c18ac8 /config-model/src/test/java | |
parent | 218205b80900f85167ec028e5cc55bbe98702dbd (diff) |
Update tests and fix creation of significanceModel
Diffstat (limited to 'config-model/src/test/java')
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java index 9dc3c72ba64..c67ba6d6b67 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java @@ -1,13 +1,19 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.significance.test; +import com.yahoo.component.ComponentId; +import com.yahoo.config.InnerNode; +import com.yahoo.config.ModelNode; +import com.yahoo.config.ModelReference; +import com.yahoo.search.significance.config.SignificanceConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.container.ApplicationContainerCluster; +import com.yahoo.vespa.model.container.component.SignificanceModelRegistry; import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithFilePkg; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; /** * @author MariusArhaug @@ -24,5 +30,42 @@ public class SignificanceModelTestCase { ApplicationContainerCluster containerCluster = vespaModel.getContainerClusters().get("container"); assertEquals(1, containerCluster.getContainers().size()); } + + @Test + void testSignificance() { + VespaModel vespaModel = createModel("src/test/cfg/significance"); + ApplicationContainerCluster containerCluster = vespaModel.getContainerClusters().get("container"); + var significanceConfig = assertSignificancePresent(containerCluster); + assertEquals(3, significanceConfig.model().size()); + assertEquals("en", significanceConfig.model().get(0).language()); + assertEquals("no", significanceConfig.model().get(1).language()); + assertEquals("ru", significanceConfig.model().get(2).language()); + + assertEquals("models/idf-norwegian-wiki.json.zst", modelReference(significanceConfig.model().get(1), "path").path().orElseThrow().value()); + assertEquals("https://some/uri/blob.json", modelReference(significanceConfig.model().get(2), "path").url().orElseThrow().value()); + + + } + + private SignificanceConfig assertSignificancePresent(ApplicationContainerCluster cluster) { + + var id = new ComponentId("com.yahoo.search.significance.impl.DefaultSignificanceModelRegistry"); + var significance = (SignificanceModelRegistry) cluster.getComponentsMap().get(id); + assertEquals("com.yahoo.search.significance.impl.DefaultSignificanceModelRegistry", significance.getClassId().getName()); + var cfgBuilder = new SignificanceConfig.Builder(); + significance.getConfig(cfgBuilder); + return cfgBuilder.build(); + } + + // Ugly hack to read underlying model reference from config instance + private static ModelReference modelReference(InnerNode cfg, String name) { + try { + var f = cfg.getClass().getDeclaredField(name); + f.setAccessible(true); + return ((ModelNode) f.get(cfg)).getModelReference(); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + } } |