diff --git a/features/org.jkiss.dbeaver.test.feature/feature.xml b/features/org.jkiss.dbeaver.test.feature/feature.xml index a23565fffe..859526b340 100644 --- a/features/org.jkiss.dbeaver.test.feature/feature.xml +++ b/features/org.jkiss.dbeaver.test.feature/feature.xml @@ -23,4 +23,5 @@ + diff --git a/plugins/org.jkiss.dbeaver.model.ai/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModels.java b/plugins/org.jkiss.dbeaver.model.ai/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModels.java index ec9f910dbb..42ea8f8c71 100644 --- a/plugins/org.jkiss.dbeaver.model.ai/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModels.java +++ b/plugins/org.jkiss.dbeaver.model.ai/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModels.java @@ -87,7 +87,7 @@ public final class OpenAIModels { if (DEPRECATED_MODELS.contains(lowerCaseModelName)) { return DEFAULT_MODEL; } - return lowerCaseModelName; + return modelName; } @NotNull diff --git a/test/org.jkiss.dbeaver.model.ai.test/META-INF/MANIFEST.MF b/test/org.jkiss.dbeaver.model.ai.test/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..046256d34e --- /dev/null +++ b/test/org.jkiss.dbeaver.model.ai.test/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: DBeaver AI Tests +Bundle-SymbolicName: org.jkiss.dbeaver.model.ai.test +Bundle-Version: 1.0.0.qualifier +Bundle-Release-Date: 20251006 +Bundle-RequiredExecutionEnvironment: JavaSE-21 +Bundle-Vendor: DBeaver Corp +Fragment-Host: org.jkiss.dbeaver.model.ai +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources, + org.junit, + org.mockito.mockito-core, + org.jkiss.dbeaver.test.platform, + org.jkiss.dbeaver.model.ai diff --git a/test/org.jkiss.dbeaver.model.ai.test/build.properties b/test/org.jkiss.dbeaver.model.ai.test/build.properties new file mode 100644 index 0000000000..14fb1734d9 --- /dev/null +++ b/test/org.jkiss.dbeaver.model.ai.test/build.properties @@ -0,0 +1,5 @@ +source..=src/ +output..=target/classes/ +bin.includes=.,\ + META-INF/ +. diff --git a/test/org.jkiss.dbeaver.model.ai.test/pom.xml b/test/org.jkiss.dbeaver.model.ai.test/pom.xml new file mode 100644 index 0000000000..96926b0334 --- /dev/null +++ b/test/org.jkiss.dbeaver.model.ai.test/pom.xml @@ -0,0 +1,32 @@ + + + + 4.0.0 + + org.jkiss.dbeaver + tests + 1.0.0-SNAPSHOT + ../ + + org.jkiss.dbeaver.model.ai.test + 1.0.0-SNAPSHOT + eclipse-test-plugin + + \ No newline at end of file diff --git a/test/org.jkiss.dbeaver.model.ai.test/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModelsTest.java b/test/org.jkiss.dbeaver.model.ai.test/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModelsTest.java new file mode 100644 index 0000000000..f83e785a69 --- /dev/null +++ b/test/org.jkiss.dbeaver.model.ai.test/src/org/jkiss/dbeaver/model/ai/engine/openai/OpenAIModelsTest.java @@ -0,0 +1,59 @@ +/* + * DBeaver - Universal Database Manager + * Copyright (C) 2010-2025 DBeaver Corp and others + * + * 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. + */ +package org.jkiss.dbeaver.model.ai.engine.openai; + +import org.jkiss.junit.DBeaverUnitTest; +import org.junit.Test; + +import static org.jkiss.dbeaver.model.ai.engine.openai.OpenAIModels.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assume.assumeFalse; + +public class OpenAIModelsTest extends DBeaverUnitTest { + + @Test + public void effectiveModelNameNullShouldReturnDefaultModelName() { + //when + var result = getEffectiveModelName(null); + //then + assertEquals(DEFAULT_MODEL, result); + } + + @Test + public void effectiveModelNameKnownUppercaseShouldReturnKnownModelLowercase() { + //given + var expectedModelName = KNOWN_MODELS.keySet().stream().findFirst().orElseThrow(); + var inputModelName = expectedModelName.toUpperCase(); + //when + var result = getEffectiveModelName(inputModelName); + //then + assertEquals(expectedModelName, result); + } + + @Test + public void effectiveModelNameUnknownUppercaseShouldReturnKnownModelUppercase() { + //given + var inputModelName = "some-UNKNOWN-MODEL"; + assumeFalse(KNOWN_MODELS.containsKey(inputModelName.toLowerCase())); + //when + var result = getEffectiveModelName(inputModelName); + //then + assertEquals(inputModelName, result); + } + + +} diff --git a/test/pom.xml b/test/pom.xml index 494cc72732..9364e8bf48 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -26,6 +26,7 @@ org.jkiss.dbeaver.ext.snowflake.test org.jkiss.dbeaver.ext.sqlite.test org.jkiss.dbeaver.model.lsm.test + org.jkiss.dbeaver.model.ai.test