| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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.apache.xml.security.test.dom.version; |
| |
| import static org.junit.Assert.assertTrue; |
| |
| import java.security.Provider; |
| import java.security.Security; |
| |
| /** |
| * Version test. |
| */ |
| public class VersionTest { |
| |
| /** |
| * A unit test for the algorithm below to convert a version number |
| * to a double. |
| */ |
| @org.junit.Test |
| public void testConvertVersion() throws Exception { |
| String version = convertVersion("1.4.4"); |
| assertTrue("1.44".equals(version)); |
| |
| version = convertVersion("1.4.4-SNAPSHOT"); |
| assertTrue("1.44".equals(version)); |
| |
| version = convertVersion("1.4"); |
| assertTrue("1.4".equals(version)); |
| } |
| |
| @org.junit.Test |
| public void testVersion() throws Exception { |
| Security.addProvider(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI()); |
| |
| Provider provider = Security.getProvider("ApacheXMLDSig"); |
| assertTrue(provider != null); |
| |
| String version = System.getProperty("product.version"); |
| assertTrue(version != null); |
| |
| version = convertVersion(version); |
| |
| double versionD = Double.parseDouble(version); |
| assertTrue(versionD == provider.getVersion()); |
| |
| assertTrue(provider.getInfo().contains("Santuario")); |
| } |
| |
| /** |
| * Convert the version to a number that can be parsed to a double. |
| * Namely, remove the "-SNAPSHOT" from the end, and convert version |
| * numbers like 1.4.4 to 1.44. |
| */ |
| private String convertVersion(String version) { |
| |
| // Remove the "-SNAPSHOT" version if it exists |
| int dash = version.indexOf('-'); |
| if (dash != -1) { |
| version = version.substring(0, dash); |
| } |
| |
| // Remove the second decimal point if it exists |
| int lastDot = version.lastIndexOf('.'); |
| if (version.indexOf('.') != lastDot) { |
| String prefix = version.substring(0, lastDot); |
| String suffix = version.substring(lastDot + 1, version.length()); |
| version = prefix.concat(suffix); |
| } |
| |
| return version; |
| } |
| |
| } |