diff --git a/spec/unit/concept_spec.rb b/spec/unit/concept_spec.rb index 5fac74f..c963744 100644 --- a/spec/unit/concept_spec.rb +++ b/spec/unit/concept_spec.rb @@ -38,6 +38,22 @@ .not_to raise_error end + it "generates a uuid if not given" do + concept = described_class.new(attrs) + uuid = Glossarist::Utilities::UUID.uuid_v5( + Glossarist::Utilities::UUID::OID_NAMESPACE, + concept.to_h.to_s + ) + + expect(concept.uuid).to eq(uuid) + end + + it "assign a uuid if given" do + concept = described_class.new(attrs.merge("uuid" => "abc")) + + expect(concept.uuid).to eq("abc") + end + it "accepts a hash of attributes and create a concept" do related = [ { diff --git a/spec/unit/managed_concept_collection_spec.rb b/spec/unit/managed_concept_collection_spec.rb index 14bcc3a..a5f36bb 100644 --- a/spec/unit/managed_concept_collection_spec.rb +++ b/spec/unit/managed_concept_collection_spec.rb @@ -57,8 +57,16 @@ end describe "#[]" do - it "returns a managed concept" do - managed_concept = Glossarist::ManagedConcept.new("data" => { id: "id" }) + let(:managed_concept) { Glossarist::ManagedConcept.new("data" => { id: "id" }) } + + it "returns a managed concept by uuid" do + managed_concept_collection.store(managed_concept) + uuid = Glossarist::Utilities::UUID.uuid_v5(Glossarist::Utilities::UUID::OID_NAMESPACE, managed_concept.to_h.to_s) + + expect(managed_concept_collection[uuid]).to eq(managed_concept) + end + + it "returns a managed concept by id" do managed_concept_collection.store(managed_concept) expect(managed_concept_collection["id"]).to eq(managed_concept)