/*
* Copyright Siemens AG, 2013-2015. Part of the SW360 Portal Project.
*
* 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.eclipse.sw360.datahandler.businessrules.jgivens;
import com.google.common.collect.ImmutableMap;
import org.eclipse.sw360.datahandler.TEnumToString;
import org.eclipse.sw360.datahandler.thrift.components.ClearingState;
import org.eclipse.sw360.datahandler.thrift.components.FossologyStatus;
import org.eclipse.sw360.datahandler.thrift.components.Release;
import com.tngtech.jgiven.Stage;
import com.tngtech.jgiven.annotation.Quoted;
import com.tngtech.jgiven.annotation.ScenarioState;
import org.mockito.Mockito;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.google.common.collect.Lists.newArrayList;
import static org.mockito.Mockito.mock;
/**
* @author daniele.fognini@tngtech.com
*/
public class GivenReleasesWithFossologyStatus extends Stage<GivenReleasesWithFossologyStatus> {
@ScenarioState
public List<Release> releaseList = newArrayList();
private Release release;
public GivenReleasesWithFossologyStatus a_release_with_fossology_status_$_for_$(@TEnumToString FossologyStatus f1, @Quoted String t1) {
a_new_release();
Map<String, FossologyStatus> fossologyStatusPerClearingTeam = ImmutableMap.of(t1, f1);
Mockito.when(release.getClearingTeamToFossologyStatus()).thenReturn(fossologyStatusPerClearingTeam);
return self();
}
public GivenReleasesWithFossologyStatus a_release_with_fossology_status_$_for_$_and_$_for_$(@TEnumToString FossologyStatus f1, @Quoted String t1, @TEnumToString FossologyStatus f2, @Quoted String t2) {
a_new_release();
Map<String, FossologyStatus> fossologyStatusPerClearingTeam = ImmutableMap.of(t1, f1, t2, f2);
Mockito.when(release.getClearingTeamToFossologyStatus()).thenReturn(fossologyStatusPerClearingTeam);
return self();
}
public GivenReleasesWithFossologyStatus a_release_with_fossology_status_$_for_$_and_$_for_$_and_$_for_$(@TEnumToString FossologyStatus f1, @Quoted String t1, @TEnumToString FossologyStatus f2, @Quoted String t2, @TEnumToString FossologyStatus f3, @Quoted String t3) {
a_new_release();
Map<String, FossologyStatus> fossologyStatusPerClearingTeam = ImmutableMap.of(t1, f1, t2, f2, t3, f3);
Mockito.when(release.getClearingTeamToFossologyStatus()).thenReturn(fossologyStatusPerClearingTeam);
return self();
}
public GivenReleasesWithFossologyStatus a_release_with_clearing_status_$_and_fossology_status_$_for_$_and_$_for_$(@TEnumToString ClearingState clearingState, @TEnumToString FossologyStatus f1, @Quoted String t1, @TEnumToString FossologyStatus f2, @Quoted String t2) {
a_new_release();
Map<String, FossologyStatus> fossologyStatusPerClearingTeam = ImmutableMap.of(t1, f1, t2, f2);
Mockito.when(release.getClearingState()).thenReturn(clearingState);
Mockito.when(release.getClearingTeamToFossologyStatus()).thenReturn(fossologyStatusPerClearingTeam);
return self();
}
public GivenReleasesWithFossologyStatus a_release_with_clearing_status_$_and_fossology_status_$_for_$(@TEnumToString ClearingState clearingState, @TEnumToString FossologyStatus f1, @Quoted String t1) {
a_new_release();
Map<String, FossologyStatus> fossologyStatusPerClearingTeam = ImmutableMap.of(t1, f1);
Mockito.when(release.getClearingState()).thenReturn(clearingState);
Mockito.when(release.getClearingTeamToFossologyStatus()).thenReturn(fossologyStatusPerClearingTeam);
return self();
}
public GivenReleasesWithFossologyStatus a_new_release() {
release = mock(Release.class);
releaseList.add(release);
Mockito.when(release.getClearingState()).thenReturn(ClearingState.NEW_CLEARING);
Mockito.when(release.getClearingTeamToFossologyStatus()).thenReturn(new HashMap<String, FossologyStatus>());
return self();
}
public GivenReleasesWithFossologyStatus a_release_with_clearing_status(@TEnumToString ClearingState clearingState) {
a_new_release();
Mockito.when(release.getClearingState()).thenReturn(clearingState);
return self();
}
}