package org.ovirt.engine.core.common.utils;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class RpmVersionUtilsTest {
@Test
public void testCompareRpmRelease() {
assertEquals(-1, RpmVersionUtils.compareRpmParts("2.3.10.4.fc18.x86_64", "2.3.10.4.fc19.x86_64"));
assertEquals(1, RpmVersionUtils.compareRpmParts("20130821.fc18.x86_64", "20130820.fc18.x86_64"));
assertEquals(-1, RpmVersionUtils.compareRpmParts("20130820.0.fc18.x86_64", "20130820.1.fc18.x86_64"));
assertEquals(1, RpmVersionUtils.compareRpmParts("20130820.0.fc18.x86_64", "20130820.fc18.x86_64"));
assertEquals(1, RpmVersionUtils.compareRpmParts("20130820.1.3.fc18.x86_64", "20130820.1.fc18.x86_64"));
}
@Test(expected = IllegalArgumentException.class)
public void testIllegalRpmSplitNoDashes() {
RpmVersionUtils.splitRpmToParts("abcdef");
}
@Test(expected = IllegalArgumentException.class)
public void testIllegalRpmSplitNoEnoughDashes() {
RpmVersionUtils.splitRpmToParts("abcdef-123");
}
@Test
public void testISplitRpm() {
assertArrayEquals(new String[]{"ovirt-iso-node", "2.6.0", "20130820.fc18.x86_64"},
RpmVersionUtils.splitRpmToParts("ovirt-iso-node-2.6.0-20130820.fc18.x86_64"));
}
@Test
public void testFillCompsArray() {
StringBuilder[] result = RpmVersionUtils.fillCompsArray("20130820.1.3.fc18.x86_64");
String[] expected = {"20130820", "1", "3", "fc", "18", "x", "86", "64"};
int counter = 0;
while (true) {
assertEquals(expected[counter], result[counter].toString());
counter++;
if (counter == result.length || result[counter] == null) {
break;
}
}
}
}