/******************************************************************************* * Copyright (c) 2013 Red Hat, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat - initial API and implementation *******************************************************************************/ package org.eclipse.linuxtools.rpm.core.utils.tests; import static org.junit.Assert.*; import org.eclipse.core.runtime.CoreException; import org.eclipse.linuxtools.rpm.core.utils.RPMQuery; import org.junit.Test; public class RPMQueryTest { private static final String[] testWrongNVRs = { "%{?scl_prefix}eclipse-jgit-3.0.0-1.fc20", "%{?scl_prefix}eclipse-egit-2.3.1-1.fc20", "eclipse-egit-github-2.3.0-5.fc20", "eclipse-fedorapackager-0.4.1-6.fc20", "%{?scl_prefix}eclipse-jgit-3.0.0-1.fc20", "fedora-packager-0.5.10.1-3.fc20" }; private static final String[] testCorrectNVRs = { "eclipse-jgit-3.0.0-1.fc20", "eclipse-egit-2.3.1-1.fc20", "eclipse-egit-github-2.3.0-5.fc20", "eclipse-fedorapackager-0.4.1-6.fc20", "eclipse-jgit-3.0.0-1.fc20", "fedora-packager-0.5.10.1-3.fc20" }; @Test public void testEval() throws CoreException { // check eval for string without macro assertEquals("should be same", RPMQuery.eval("should be same").trim()); // check eval for macro only assertEquals("/usr/share", RPMQuery.eval("%{_datadir}").trim()); // check eval for macro and string assertEquals("/usr/share/eclipse", RPMQuery.eval("%{_datadir}/eclipse") .trim()); // check eval for conditional undefined macro assertEquals("eclipse", RPMQuery.eval("%{?scl_prefix}eclipse").trim()); } // Test evaluating NVRs when displaying bodhi update dialog @Test public void testNVREval() throws CoreException { String toEval; for (int i = 0; i < testCorrectNVRs.length; i++) { toEval = RPMQuery.eval(testWrongNVRs[i]).trim(); assertNotNull(toEval); assertEquals(toEval, testCorrectNVRs[i]); } } }