claim.test.exs (3775B)
1 # Zenflows is designed to implement the Valueflows vocabulary, 2 # written and maintained by srfsh <info@dyne.org>. 3 # Copyright (C) 2021-2023 Dyne.org foundation <foundation@dyne.org>. 4 # 5 # This program is free software: you can redistribute it and/or modify 6 # it under the terms of the GNU Affero General Public License as published by 7 # the Free Software Foundation, either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # This program is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU Affero General Public License for more details. 14 # 15 # You should have received a copy of the GNU Affero General Public License 16 # along with this program. If not, see <https://www.gnu.org/licenses/>. 17 18 defmodule ZenflowsTest.VF.Claim do 19 use ZenflowsTest.Help.EctoCase, async: true 20 21 alias Zenflows.VF.Claim 22 23 setup do 24 %{params: %{ 25 action_id: Factory.build(:action_id), 26 provider_id: Factory.insert!(:agent).id, 27 receiver_id: Factory.insert!(:agent).id, 28 resource_classified_as: Factory.str_list("uri"), 29 resource_conforms_to_id: Factory.insert!(:resource_specification).id, 30 resource_quantity: %{ 31 has_unit_id: Factory.insert!(:unit).id, 32 has_numerical_value: Factory.decimal(), 33 }, 34 effort_quantity: %{ 35 has_unit_id: Factory.insert!(:unit).id, 36 has_numerical_value: Factory.decimal(), 37 }, 38 triggered_by_id: Factory.insert!(:economic_event).id, 39 due: Factory.now(), 40 finished: Factory.bool(), 41 note: Factory.str("note"), 42 agreed_in: Factory.str("uri"), 43 # in_scope_of_id: 44 }} 45 end 46 47 @tag skip: "TODO: fix events in factory" 48 test "create Claim", %{params: params} do 49 assert {:ok, %Claim{} = claim} = 50 params 51 |> Claim.changeset() 52 |> Repo.insert() 53 54 assert claim.action_id == params.action_id 55 assert claim.provider_id == params.provider_id 56 assert claim.receiver_id == params.receiver_id 57 assert claim.resource_classified_as == params.resource_classified_as 58 assert claim.resource_conforms_to_id == params.resource_conforms_to_id 59 assert claim.resource_quantity_has_unit_id == params.resource_quantity.has_unit_id 60 assert claim.resource_quantity_has_numerical_value == params.resource_quantity.has_numerical_value 61 assert claim.effort_quantity_has_unit_id == params.effort_quantity.has_unit_id 62 assert claim.effort_quantity_has_numerical_value == params.effort_quantity.has_numerical_value 63 assert claim.triggered_by_id == params.triggered_by_id 64 assert claim.due == params.due 65 assert claim.finished == params.finished 66 assert claim.note == params.note 67 assert claim.agreed_in == params.agreed_in 68 # assert in_scope_of 69 end 70 71 @tag skip: "TODO: fix events in factory" 72 test "update Appreciation", %{params: params} do 73 assert {:ok, %Claim{} = claim} = 74 :claim 75 |> Factory.insert!() 76 |> Claim.changeset(params) 77 |> Repo.update() 78 79 assert claim.action_id == params.action_id 80 assert claim.provider_id == params.provider_id 81 assert claim.receiver_id == params.receiver_id 82 assert claim.resource_classified_as == params.resource_classified_as 83 assert claim.resource_conforms_to_id == params.resource_conforms_to_id 84 assert claim.resource_quantity_has_unit_id == params.resource_quantity.has_unit_id 85 assert claim.resource_quantity_has_numerical_value == params.resource_quantity.has_numerical_value 86 assert claim.effort_quantity_has_unit_id == params.effort_quantity.has_unit_id 87 assert claim.effort_quantity_has_numerical_value == params.effort_quantity.has_numerical_value 88 assert claim.triggered_by_id == params.triggered_by_id 89 assert claim.due == params.due 90 assert claim.finished == params.finished 91 assert claim.note == params.note 92 assert claim.agreed_in == params.agreed_in 93 # assert in_scope_of 94 end 95 end