/** * Copyright (c) 2012 BMW Car IT and others. * 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 */ package org.jnario.suite.unit; import java.util.Map; import org.eclipse.emf.ecore.EClass; import org.eclipse.xtext.resource.EObjectDescription; import org.eclipse.xtext.resource.IEObjectDescription; import org.eclipse.xtext.xbase.lib.Extension; import org.eclipse.xtext.xbase.lib.Pair; import org.jnario.feature.feature.FeaturePackage; import org.jnario.jnario.test.util.Specs; import org.jnario.jnario.test.util.Suites; import org.jnario.lib.Assert; import org.jnario.lib.JnarioCollectionLiterals; import org.jnario.lib.Should; import org.jnario.runner.ExampleGroupRunner; import org.jnario.runner.Named; import org.jnario.runner.Order; import org.jnario.runner.Subject; import org.jnario.spec.scoping.SpecResourceDescriptionStrategy; import org.jnario.spec.spec.ExampleGroup; import org.jnario.spec.spec.SpecPackage; import org.jnario.suite.scoping.SuiteSpecFilter; import org.jnario.suite.suite.Suite; import org.jnario.suite.suite.SuitePackage; import org.junit.Test; import org.junit.runner.RunWith; @Named("SuiteSpecFilter") @RunWith(ExampleGroupRunner.class) @SuppressWarnings("all") public class SuiteSpecFilterSpec { @Subject public SuiteSpecFilter subject; @Extension @org.jnario.runner.Extension public SuitePackage _suitePackage = SuitePackage.eINSTANCE; @Extension @org.jnario.runner.Extension public SpecPackage _specPackage = SpecPackage.eINSTANCE; @Extension @org.jnario.runner.Extension public FeaturePackage _featurePackage = FeaturePackage.eINSTANCE; @Test @Named("Suites pass") @Order(1) public void _suitesPass() throws Exception { EClass _suite = this._suitePackage.getSuite(); IEObjectDescription _desc = this.desc(_suite); boolean _apply = this.subject.apply(_desc); Assert.assertTrue("\nExpected subject.apply(desc(suite)) => true but" + "\n subject.apply(desc(suite)) is " + new org.hamcrest.StringDescription().appendValue(Boolean.valueOf(_apply)).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n desc(suite) is " + new org.hamcrest.StringDescription().appendValue(_desc).toString() + "\n suite is " + new org.hamcrest.StringDescription().appendValue(_suite).toString() + "\n", Should.<Boolean>operator_doubleArrow(Boolean.valueOf(_apply), true)); } @Test @Named("Features pass") @Order(2) public void _featuresPass() throws Exception { EClass _feature = this._featurePackage.getFeature(); IEObjectDescription _desc = this.desc(_feature); boolean _apply = this.subject.apply(_desc); Assert.assertTrue("\nExpected subject.apply(desc(feature)) => true but" + "\n subject.apply(desc(feature)) is " + new org.hamcrest.StringDescription().appendValue(Boolean.valueOf(_apply)).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n desc(feature) is " + new org.hamcrest.StringDescription().appendValue(_desc).toString() + "\n feature is " + new org.hamcrest.StringDescription().appendValue(_feature).toString() + "\n", Should.<Boolean>operator_doubleArrow(Boolean.valueOf(_apply), true)); } @Test @Named("Root Specs pass") @Order(3) public void _rootSpecsPass() throws Exception { IEObjectDescription _rootSpec = this.rootSpec(); boolean _apply = this.subject.apply(_rootSpec); Assert.assertTrue("\nExpected subject.apply(rootSpec) => true but" + "\n subject.apply(rootSpec) is " + new org.hamcrest.StringDescription().appendValue(Boolean.valueOf(_apply)).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n rootSpec is " + new org.hamcrest.StringDescription().appendValue(_rootSpec).toString() + "\n", Should.<Boolean>operator_doubleArrow(Boolean.valueOf(_apply), true)); } @Test @Named("Child Specs fail") @Order(4) public void _childSpecsFail() throws Exception { IEObjectDescription _childSpec = this.childSpec(); boolean _apply = this.subject.apply(_childSpec); Assert.assertTrue("\nExpected subject.apply(childSpec) => false but" + "\n subject.apply(childSpec) is " + new org.hamcrest.StringDescription().appendValue(Boolean.valueOf(_apply)).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n childSpec is " + new org.hamcrest.StringDescription().appendValue(_childSpec).toString() + "\n", Should.<Boolean>operator_doubleArrow(Boolean.valueOf(_apply), false)); } public IEObjectDescription desc(final EClass type) { Suite _suite = Suites.suite("mySuite"); return EObjectDescription.create("name", _suite); } public IEObjectDescription rootSpec() { return this.spec(SpecResourceDescriptionStrategy.TRUE); } public IEObjectDescription childSpec() { return this.spec(SpecResourceDescriptionStrategy.FALSE); } public IEObjectDescription spec(final String value) { IEObjectDescription _xblockexpression = null; { final ExampleGroup spec = Specs.exampleGroup("name"); Pair<String, String> _mappedTo = Pair.<String, String>of(SpecResourceDescriptionStrategy.ROOT_SPEC, value); Map<String, String> _map = JnarioCollectionLiterals.<String, String>map(_mappedTo); _xblockexpression = EObjectDescription.create("name", spec, _map); } return _xblockexpression; } }