require 'helper'

describe Bearcat::Client::Rubric do
  before do
    @client = Bearcat::Client.new(prefix:"http://canvas.instructure.com", token: "test_token")
  end

  it "returns a rubric for a course" do
    stub_get(@client, "/api/v1/courses/72/rubrics/1").to_return(json_response("rubric.json"))
    rubric = @client.course_rubric(72, 1)
    rubric['id'].should == 1
    rubric['title'].should == 'Rubric title'
    rubric['context_type'].should == 'Course'
    rubric['points_possible'].should == 10
  end

  it "creates a rubric" do
    stub_post(@client, "/api/v1/courses/72/rubrics").
      with(:body => {"rubric_assessment"=>{"user_id"=>"22"}}).to_return(json_response("rubric.json"))
    rubric = @client.create_course_rubric(72, {"rubric_assessment[user_id]" => "22"})
    rubric['id'].should == 1
    rubric['title'].should == 'Rubric title'
    rubric['context_type'].should == 'Course'
    rubric['points_possible'].should == 10
  end

  it "updates a rubric" do
    stub_put(@client, "/api/v1/courses/72/rubrics/1")
      .with(:body => {"rubric_assessment"=>{"user_id"=>"22"}}).to_return(json_response("rubric.json"))
    rubric = @client.update_course_rubric(72, 1, {"rubric_assessment[user_id]" => "22"})
    rubric['id'].should == 1
    rubric['title'].should == 'Rubric title'
    rubric['context_type'].should == 'Course'
    rubric['points_possible'].should == 10
  end

  it "deletes a rubric" do
    stub_delete(@client, "/api/v1/courses/72/rubrics/1").to_return(json_response("rubric.json"))
    rubric = @client.delete_course_rubric(72, 1)
    rubric['title'].should == 'Rubric title'
    rubric['context_type'].should == 'Course'
    rubric['points_possible'].should == 10
  end

end