Skip to content

Commit

Permalink
[ci] Project#update_repositories: test updating hostsystem
Browse files Browse the repository at this point in the history
  • Loading branch information
bgeuken committed Mar 23, 2016
1 parent e71204d commit 91ba279
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/api/spec/models/project_spec.rb
Expand Up @@ -110,5 +110,54 @@
)
end
end

describe "hostsystem" do
let!(:target_project) { create(:project, name: "target_project") }
let!(:target_repository) { create(:repository, name: 'target_repo', project: target_project) }

before do
repository_1.hostsystem = target_repository
repository_1.save!

@xml_hash = Xmlhash.parse(
<<-EOF
<project name="#{project.name}">
<repository name="repo_1" />
<repository name="repo_2">
<hostsystem repository="#{target_repository.name}" project="#{target_project.name}" />
</repository>
</project>
EOF
)
end

it "updates the hostsystem of a repository" do
project.update_repositories(@xml_hash, force = false)
expect(repository_1.reload.hostsystem).to be nil
expect(repository_2.reload.hostsystem).to eq target_repository
end

it "raises an error if hostsystem refers itself" do
xml_hash = Xmlhash.parse(
<<-EOF
<project name="#{project.name}">
<repository name="repo_2">
<hostsystem repository="repo_2" project="#{project.name}" />
</repository>
</project>
EOF
)
expect { project.update_repositories(xml_hash, force = false) }.to raise_error(
Project::SaveError, "Using same repository as hostsystem element is not allowed"
)
end

it "raises an error if target repository does not exist" do
target_repository.destroy
expect { project.update_repositories(@xml_hash, force = false) }.to raise_error(
Project::SaveError, "Unknown target repository 'target_project/target_repo'"
)
end
end
end
end

0 comments on commit 91ba279

Please sign in to comment.