/*******************************************************************************
* 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]);
}
}
}