ece517-p3/expertiza

View on GitHub
spec/models/submission_content_fetcher_spec.rb

Summary

Maintainability
A
0 mins
Test Coverage
describe "SubmissionContentFetcher" do
  it "cannot be instantiated" do
    expect { SubmissionContentFetcher.new }.to raise_error(NoMethodError)
  end

  it "creates factory for wiki documentation" do
    url = "http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Spring_2016/E1738_Integrate_Simicheck_Web_Service"
    fetcher = SubmissionContentFetcher.doc_factory(url)
    expect(fetcher).to be_instance_of(WebsiteFetcher)
    expect(fetcher.instance_variable_get(:@url)).to eql(url)
  end

  it "creates factory for google docs edit URL documentation" do
    url = "https://docs.google.com/document/d/1-waDJtPB8VGLyubb40-X951PF9R3jdhm6Kb4ga__S0E/edit"
    fetcher = SubmissionContentFetcher.doc_factory(url)
    expect(fetcher).to be_instance_of(GoogleDocFetcher)
    expect(fetcher.instance_variable_get(:@url)).to eql(url)
  end

  it "creates factory for google docs drive URL documentation" do
    url = "https://drive.google.com/open?id=1Ngds9Fr4vas8n0cA-uvZDOU7VMarMfGytbC9VLc0IYI"
    fetcher = SubmissionContentFetcher.doc_factory(url)
    expect(fetcher).to be_instance_of(GoogleDocFetcher)
    expect(fetcher.instance_variable_get(:@url)).to eql(url)
  end

  it "creates factory for github pull request code" do
    url = "https://github.com/totallybradical/simicheck-expertiza-sandbox/pull/3"
    fetcher = SubmissionContentFetcher.code_factory(url)
    expect(fetcher).to be_instance_of(GithubPullRequestFetcher)
    expect(fetcher.instance_variable_get(:@url)).to eql(url)
  end

  it "does not create for a bogus URL" do
    expect(SubmissionContentFetcher.doc_factory("bogus URL")).to be_nil
    expect(SubmissionContentFetcher.code_factory("another bogus URL")).to be_nil
  end
end