package org.jbehave.examples.google.steps;

import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
import org.jbehave.core.io.LoadFromClasspath;
import org.jbehave.core.io.StoryLoader;
import org.jbehave.core.io.google.LoadOdtFromGoogle;

public class GoogleSteps {

    private StoryLoader storyLoader;
    private String storyAsText;

    @Given("Google feed $uri")
    public void givenGoogleFeed(String feedURI) {
        String username = System.getenv("GOOGLE_USER");
        String password = System.getenv("GOOGLE_PASSWORD");
        storyLoader = new LoadOdtFromGoogle(username, password, feedURI);
    }

    @When("story $storyPath is loaded from feed")
    public void whenStoryIsLoadedFromFeed(String storyPath) {
        storyAsText = storyLoader.loadStoryAsText(storyPath).trim();
    }

    @Then("content is same as $storyPath")
    public void thenContentIsSameAs(String storyPath) {
        String expected = new LoadFromClasspath(this.getClass()).loadResourceAsText(storyPath).trim();
        MatcherAssert.assertThat(storyAsText, Matchers.equalTo(expected));
    }
}
