/******************************************************************************* * Copyright 2012 - Joakim Erdfelt * * 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 net.erdfelt.android.sdkfido.sdks; import static org.hamcrest.Matchers.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.junit.Assert; import org.junit.Test; public class BranchTest { @Test public void testSortBasic() { List<Branch> unsorted = new ArrayList<Branch>(); unsorted.add(new Branch("eclair-release", "2.0")); unsorted.add(new Branch("donut-release2", "1.6")); unsorted.add(new Branch("gingerbread-release", "2.3")); unsorted.add(new Branch("cupcake-release", "1.5")); unsorted.add(new Branch("release-1.0", "1.0")); unsorted.add(new Branch("froyo-release", "2.2")); unsorted.add(new Branch("donut-release", "1.6")); String expectedOrder[] = { "gingerbread-release", "froyo-release", "eclair-release", "donut-release2", "donut-release", "cupcake-release", "release-1.0" }; assertSortOrder(expectedOrder, unsorted); } private void assertSortOrder(String[] expectedOrder, List<Branch> branches) { Assert.assertEquals("unsorted and expected order length", expectedOrder.length, branches.size()); System.out.printf("Original order: %s%n", order(branches)); Collections.sort(branches); System.out.printf("Sorted order: %s%n", order(branches)); int len = expectedOrder.length; for (int i = 0; i < len; i++) { Branch branch = branches.get(i); Assert.assertThat("branches[" + i + "].name", branch.getName(), is(expectedOrder[i])); } } private String order(List<Branch> branches) { StringBuilder buf = new StringBuilder(); buf.append("{ "); boolean delim = false; for (Branch branch : branches) { if (delim) { buf.append(", "); } buf.append(branch.getName()); delim = true; } buf.append(" }"); return buf.toString(); } }