/** * Copyright (C) 2012-2013 eBusiness Information (www.ebusinessinformation.fr) * * 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 com.athomas.androidkickstartr; import java.io.File; import java.util.ArrayList; import java.util.NoSuchElementException; import junit.framework.Assert; import org.apache.maven.shared.invoker.DefaultInvocationRequest; import org.apache.maven.shared.invoker.DefaultInvoker; import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.InvocationResult; import org.apache.maven.shared.invoker.MavenInvocationException; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.athomas.androidkickstartr.AppDetails.Builder; /** * Requires a device or emulator connected * */ public class KickstartrMavenTest { private Kickstartr kickstartr; private AppDetails appDetails; private Builder builder; @Before public void before() { builder = new AppDetails.Builder().// packageName("com.androidkickstartr.app").// name("MyApp").// activity("MainActivity").// activityLayout("activity_main").// minSdk(8).// targetSdk(16).// permissions(new ArrayList<String>()); } @After public void cleanProject() { buildWithMaven(); kickstartr.clean(); } private void buildWithMaven() { InvocationRequest request = new DefaultInvocationRequest(); File pom = new File("generated/MyApp-AndroidKickstartr/MyApp/pom.xml"); Assert.assertNotNull(pom); Assert.assertTrue(pom.exists()); request.setPomFile(pom); File baseDir = new File("generated/MyApp-AndroidKickstartr/MyApp"); Assert.assertNotNull(baseDir); Assert.assertTrue(baseDir.exists()); request.setBaseDirectory(baseDir); ArrayList<String> goals = new ArrayList<String>(); goals.add("clean"); goals.add("install"); goals.add("android:deploy"); goals.add("android:run"); request.setGoals(goals); request.setShowErrors(true); request.setDebug(false); DefaultInvoker invoker = new DefaultInvoker(); String mavenHome = System.getenv("MAVEN_HOME"); if (mavenHome == null) throw new NoSuchElementException("Compilation impossible because you do not have a $MAVEN_HOME variable declared in your environment."); invoker.setMavenHome(new File(mavenHome)); InvocationResult result; try { result = invoker.execute(request); Assert.assertTrue(result.getExitCode() == 0); Assert.assertTrue(result.getExecutionException() == null); } catch (MavenInvocationException e) { e.printStackTrace(); } } @Test public void generateProject_maven() { appDetails = builder.// maven(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_proguard() { appDetails = builder.// maven(true). // proguard(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_viewpager() { appDetails = builder.// maven(true). // viewPager(true). // supportV4(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs() { appDetails = builder.// maven(true). // actionBarSherlock(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_sample() { appDetails = builder.// maven(true). // actionBarSherlock(true).// sample(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_viewpager() { appDetails = builder.// maven(true). // actionBarSherlock(true).// viewPager(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_tab() { appDetails = builder.// maven(true). // actionBarSherlock(true).// tabNavigation(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_tab_viewpager() { appDetails = builder.// maven(true). // actionBarSherlock(true).// viewPager(true). // tabNavigation(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list() { appDetails = builder.// maven(true). // actionBarSherlock(true).// listNavigation(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_viewpager() { appDetails = builder.// maven(true). // actionBarSherlock(true).// viewPager(true). // listNavigation(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_aa() { appDetails = builder.// maven(true). // androidAnnotations(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_aa() { appDetails = builder.// maven(true). // androidAnnotations(true).// actionBarSherlock(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_aa_rest() { appDetails = builder.// maven(true). // androidAnnotations(true).// restTemplate(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_aa_rest_acra() { appDetails = builder.// maven(true). // androidAnnotations(true).// restTemplate(true).// acra(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_roboguice() { appDetails = builder.// maven(true). // roboguice(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_roboguice_abs() { appDetails = builder.// maven(true). // roboguice(true). // actionBarSherlock(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_roboguice_viewpager() { appDetails = builder.// maven(true). // roboguice(true). // viewPager(true). // supportV4(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_roboguice_abs_viewpager() { appDetails = builder.// maven(true). // roboguice(true).// actionBarSherlock(true).// viewPager(true).// build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_aa_rest_acra() { appDetails = builder.// maven(true). // actionBarSherlock(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_aa_rest_acra_nine() { appDetails = builder.// maven(true). // actionBarSherlock(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_aa_rest_acra_nine_viewpager() { appDetails = builder.// maven(true). // actionBarSherlock(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_tab_aa_rest_acra_nine_viewpager() { appDetails = builder.// maven(true). // actionBarSherlock(true). // tabNavigation(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_tab_rest_acra_nine_viewpager_roboguice() { appDetails = builder.// maven(true). // actionBarSherlock(true). // tabNavigation(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // roboguice(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_aa_rest_acra_nine_viewpager() { appDetails = builder.// maven(true). // actionBarSherlock(true). // listNavigation(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_rest_acra_nine_viewpager_roboguice() { appDetails = builder.// maven(true). // actionBarSherlock(true). // listNavigation(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // roboguice(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_aa_rest_acra_nine_viewpager_proguard() { appDetails = builder.// maven(true). // actionBarSherlock(true). // listNavigation(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // proguard(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_aa_rest_acra_nine_viewpager_proguard_sample() { appDetails = builder.// maven(true). // actionBarSherlock(true). // listNavigation(true). // androidAnnotations(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // proguard(true). // sample(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_rest_acra_nine_viewpager_roboguice_proguard() { appDetails = builder.// maven(true). // actionBarSherlock(true). // listNavigation(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // roboguice(true). // proguard(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } @Test public void generateProject_maven_abs_list_rest_acra_nine_viewpager_roboguice_proguard_sample() { appDetails = builder.// maven(true). // actionBarSherlock(true). // listNavigation(true). // restTemplate(true).// acra(true). // nineOldAndroids(true). // viewPager(true). // roboguice(true). // proguard(true). // sample(true). // build(); File file = launchKickstartr(); Assert.assertNotNull(file); } private File launchKickstartr() { kickstartr = new Kickstartr(appDetails); return kickstartr.zipify(); } }