From f307335b8952e049a614ac1e56bab3e8efca7509 Mon Sep 17 00:00:00 2001 From: ClementGld Date: Tue, 8 Mar 2022 17:11:59 +0100 Subject: [PATCH 1/4] Begining --- apps/lenra/lib/lenra/services/get_latest_cgu.ex | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 apps/lenra/lib/lenra/services/get_latest_cgu.ex diff --git a/apps/lenra/lib/lenra/services/get_latest_cgu.ex b/apps/lenra/lib/lenra/services/get_latest_cgu.ex new file mode 100644 index 00000000..68b7e972 --- /dev/null +++ b/apps/lenra/lib/lenra/services/get_latest_cgu.ex @@ -0,0 +1,10 @@ +defmodule Lenra.ServiceGetLatestCgu do + @moduledoc """ + The service that get the latest CGU. + """ + alias Lenra.{Cgu, Repo} + + def get_latest_cgu do + Repo.get_by(Cgu) + end +end From 6074f8de887ba1a05348946309256f04b4cdcf9c Mon Sep 17 00:00:00 2001 From: ClementGld Date: Wed, 9 Mar 2022 14:56:27 +0100 Subject: [PATCH 2/4] add test --- .../lib/lenra/services/get_latest_cgu.ex | 2 +- .../services/get_latest_cgu_service_test.exs | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs diff --git a/apps/lenra/lib/lenra/services/get_latest_cgu.ex b/apps/lenra/lib/lenra/services/get_latest_cgu.ex index 68b7e972..ef643ddf 100644 --- a/apps/lenra/lib/lenra/services/get_latest_cgu.ex +++ b/apps/lenra/lib/lenra/services/get_latest_cgu.ex @@ -5,6 +5,6 @@ defmodule Lenra.ServiceGetLatestCgu do alias Lenra.{Cgu, Repo} def get_latest_cgu do - Repo.get_by(Cgu) + Cgu |> Ecto.Query.last(:inserted_at) |> Repo.one() end end diff --git a/apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs b/apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs new file mode 100644 index 00000000..2ccace26 --- /dev/null +++ b/apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs @@ -0,0 +1,56 @@ +defmodule Lenra.CguTest do + use Lenra.RepoCase, async: true + + alias Lenra.{Cgu, ServiceGetLatestCgu} + + @valid_cgu1 %{link: "Test", version: "1.0.0", hash: "test"} + @valid_cgu2 %{link: "Test1", version: "1.1.0", hash: "Test1"} + @valid_cgu3 %{link: "Test2", version: "1.2.0", hash: "Test2"} + @valid_cgu4 %{link: "Test3", version: "1.3.0", hash: "Test3"} + + describe "get_latest_cgu" do + test "insert 2 cgu and check if the service take the latest" do + {:ok, %Cgu{} = _inserted_cgu} = @valid_cgu1 |> Cgu.new() |> Repo.insert() + + date1 = DateTime.utc_now() |> DateTime.add(4, :second) |> DateTime.truncate(:second) + + {:ok, %Cgu{} = inserted_cgu1} = + @valid_cgu2 + |> Cgu.new() + |> Ecto.Changeset.put_change(:inserted_at, date1) + |> Repo.insert() + + assert inserted_cgu1 == ServiceGetLatestCgu.get_latest_cgu() + end + + test "insert 4 cgu and check if the service take the latest" do + {:ok, %Cgu{} = _inserted_cgu} = @valid_cgu1 |> Cgu.new() |> Repo.insert() + + date1 = DateTime.utc_now() |> DateTime.add(4, :second) |> DateTime.truncate(:second) + + {:ok, %Cgu{} = _inserted_cgu1} = + @valid_cgu2 + |> Cgu.new() + |> Ecto.Changeset.put_change(:inserted_at, date1) + |> Repo.insert() + + date2 = DateTime.utc_now() |> DateTime.add(8, :second) |> DateTime.truncate(:second) + + {:ok, %Cgu{} = _inserted_cgu2} = + @valid_cgu3 + |> Cgu.new() + |> Ecto.Changeset.put_change(:inserted_at, date2) + |> Repo.insert() + + date3 = DateTime.utc_now() |> DateTime.add(12, :second) |> DateTime.truncate(:second) + + {:ok, %Cgu{} = inserted_cgu3} = + @valid_cgu4 + |> Cgu.new() + |> Ecto.Changeset.put_change(:inserted_at, date3) + |> Repo.insert() + + assert inserted_cgu3 == ServiceGetLatestCgu.get_latest_cgu() + end + end +end From 3f252fd7358f8885f6616ccc8c531a45051b1028 Mon Sep 17 00:00:00 2001 From: ClementGld Date: Wed, 9 Mar 2022 15:56:03 +0100 Subject: [PATCH 3/4] modify name --- .../lib/lenra/services/{get_latest_cgu.ex => cgu_services.ex} | 2 +- .../{user_accept_cgu_version_test.exs => cgu_service_test.exs} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename apps/lenra/lib/lenra/services/{get_latest_cgu.ex => cgu_services.ex} (82%) rename apps/lenra/test/lenra/db_schema/{user_accept_cgu_version_test.exs => cgu_service_test.exs} (95%) diff --git a/apps/lenra/lib/lenra/services/get_latest_cgu.ex b/apps/lenra/lib/lenra/services/cgu_services.ex similarity index 82% rename from apps/lenra/lib/lenra/services/get_latest_cgu.ex rename to apps/lenra/lib/lenra/services/cgu_services.ex index ef643ddf..b78a8cbc 100644 --- a/apps/lenra/lib/lenra/services/get_latest_cgu.ex +++ b/apps/lenra/lib/lenra/services/cgu_services.ex @@ -1,4 +1,4 @@ -defmodule Lenra.ServiceGetLatestCgu do +defmodule Lenra.CguService do @moduledoc """ The service that get the latest CGU. """ diff --git a/apps/lenra/test/lenra/db_schema/user_accept_cgu_version_test.exs b/apps/lenra/test/lenra/db_schema/cgu_service_test.exs similarity index 95% rename from apps/lenra/test/lenra/db_schema/user_accept_cgu_version_test.exs rename to apps/lenra/test/lenra/db_schema/cgu_service_test.exs index da1941cf..632445b9 100644 --- a/apps/lenra/test/lenra/db_schema/user_accept_cgu_version_test.exs +++ b/apps/lenra/test/lenra/db_schema/cgu_service_test.exs @@ -1,4 +1,4 @@ -defmodule Lenra.UserAcceptCguVersionTest do +defmodule Lenra.CguServicesTest do use Lenra.RepoCase, async: true alias Lenra.{Cgu, UserAcceptCguVersion} From 3d90b3aab2d51e5e1f34043dd3ed997991dd49a4 Mon Sep 17 00:00:00 2001 From: ClementGld Date: Wed, 9 Mar 2022 16:02:46 +0100 Subject: [PATCH 4/4] fix --- ..._service_test.exs => user_accept_cgu_version_test.exs} | 2 +- ...t_latest_cgu_service_test.exs => cgu_service_test.exs} | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename apps/lenra/test/lenra/db_schema/{cgu_service_test.exs => user_accept_cgu_version_test.exs} (95%) rename apps/lenra/test/lenra/services/{get_latest_cgu_service_test.exs => cgu_service_test.exs} (89%) diff --git a/apps/lenra/test/lenra/db_schema/cgu_service_test.exs b/apps/lenra/test/lenra/db_schema/user_accept_cgu_version_test.exs similarity index 95% rename from apps/lenra/test/lenra/db_schema/cgu_service_test.exs rename to apps/lenra/test/lenra/db_schema/user_accept_cgu_version_test.exs index 632445b9..da1941cf 100644 --- a/apps/lenra/test/lenra/db_schema/cgu_service_test.exs +++ b/apps/lenra/test/lenra/db_schema/user_accept_cgu_version_test.exs @@ -1,4 +1,4 @@ -defmodule Lenra.CguServicesTest do +defmodule Lenra.UserAcceptCguVersionTest do use Lenra.RepoCase, async: true alias Lenra.{Cgu, UserAcceptCguVersion} diff --git a/apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs b/apps/lenra/test/lenra/services/cgu_service_test.exs similarity index 89% rename from apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs rename to apps/lenra/test/lenra/services/cgu_service_test.exs index 2ccace26..b37a41de 100644 --- a/apps/lenra/test/lenra/services/get_latest_cgu_service_test.exs +++ b/apps/lenra/test/lenra/services/cgu_service_test.exs @@ -1,7 +1,7 @@ -defmodule Lenra.CguTest do +defmodule Lenra.CguSerciceTest do use Lenra.RepoCase, async: true - alias Lenra.{Cgu, ServiceGetLatestCgu} + alias Lenra.{Cgu, CguService} @valid_cgu1 %{link: "Test", version: "1.0.0", hash: "test"} @valid_cgu2 %{link: "Test1", version: "1.1.0", hash: "Test1"} @@ -20,7 +20,7 @@ defmodule Lenra.CguTest do |> Ecto.Changeset.put_change(:inserted_at, date1) |> Repo.insert() - assert inserted_cgu1 == ServiceGetLatestCgu.get_latest_cgu() + assert inserted_cgu1 == CguService.get_latest_cgu() end test "insert 4 cgu and check if the service take the latest" do @@ -50,7 +50,7 @@ defmodule Lenra.CguTest do |> Ecto.Changeset.put_change(:inserted_at, date3) |> Repo.insert() - assert inserted_cgu3 == ServiceGetLatestCgu.get_latest_cgu() + assert inserted_cgu3 == CguService.get_latest_cgu() end end end