/*******************************************************************************
 * Copyright (c) 2009, 2017 Mountainminds GmbH & Co. KG and Contributors
 * 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:
 *    Marc R. Hoffmann - initial API and implementation
 *
 *******************************************************************************/
package org.jacoco.cli.internal.commands;

import org.jacoco.cli.internal.CommandTestBase;
import org.jacoco.core.JaCoCo;
import org.junit.Test;

/**
 * Unit tests for {@link Version}.
 */
public class VersionTest extends CommandTestBase {

	@Test
	public void should_print_version() throws Exception {
		execute("version");

		assertOk();
		assertContains(JaCoCo.VERSION, out);
	}

}
