1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
defmodule Silmataivas.LocationsFixtures do
@moduledoc """
This module defines test helpers for creating
entities via the `Silmataivas.Locations` context.
"""
import Silmataivas.UsersFixtures
@doc """
Generate a location.
"""
def location_fixture(attrs \\ %{}) do
# Create a user first if user_id is not provided
user =
if Map.has_key?(attrs, :user_id) or Map.has_key?(attrs, "user_id"),
do: nil,
else: user_fixture()
{:ok, location} =
attrs
|> Enum.into(%{
latitude: 120.5,
longitude: 120.5,
user_id: (user && user.id) || attrs[:user_id] || attrs["user_id"]
})
|> Silmataivas.Locations.create_location()
location
end
@doc """
Generate a location with a specific user.
"""
def location_fixture_with_user(user, attrs \\ %{}) do
{:ok, location} =
attrs
|> Enum.into(%{
latitude: 120.5,
longitude: 120.5,
user_id: user.id
})
|> Silmataivas.Locations.create_location()
location
end
@doc """
Generate location attributes with invalid values.
"""
def invalid_location_attrs do
%{
latitude: nil,
longitude: nil,
user_id: nil
}
end
@doc """
Generate location attributes with extreme values.
"""
def extreme_location_attrs do
%{
# Extreme value outside normal range
latitude: 1000.0,
# Extreme value outside normal range
longitude: 1000.0
}
end
end
|