Initial upload
This commit is contained in:
335
elixir/basketball-website/test/basketball_website_test.exs
Normal file
335
elixir/basketball-website/test/basketball_website_test.exs
Normal file
@@ -0,0 +1,335 @@
|
||||
defmodule BasketballWebsiteTest do
|
||||
use ExUnit.Case
|
||||
|
||||
describe "extract_from_path retrieves from" do
|
||||
@tag task_id: 1
|
||||
test "first layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(team_data, "team_name") == "Hoop Masters"
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "second layer" do
|
||||
team_data = %{
|
||||
"coach" => %{
|
||||
"first_name" => "Jane",
|
||||
"last_name" => "Brown"
|
||||
},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(team_data, "coach.first_name") == "Jane"
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "third layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"99" => %{
|
||||
"first_name" => "Amalee",
|
||||
"last_name" => "Tynemouth",
|
||||
"email" => "atynemouth0@yellowpages.com",
|
||||
"statistics" => %{}
|
||||
},
|
||||
"98" => %{
|
||||
"first_name" => "Tiffie",
|
||||
"last_name" => "Derle",
|
||||
"email" => "tderle1@vimeo.com",
|
||||
"statistics" => %{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(team_data, "players.99.first_name") == "Amalee"
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "fourth layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"42" => %{
|
||||
"first_name" => "Conchita",
|
||||
"last_name" => "Elham",
|
||||
"email" => "celham4@wikia.com",
|
||||
"statistics" => %{
|
||||
"average_points_per_game" => 4.6,
|
||||
"free_throws_made" => 7,
|
||||
"free_throws_attempted" => 10
|
||||
}
|
||||
},
|
||||
"61" => %{
|
||||
"first_name" => "Noel",
|
||||
"last_name" => "Fawlkes",
|
||||
"email" => "nfawlkes5@yahoo.co.jp",
|
||||
"statistics" => %{
|
||||
"average_points_per_game" => 5.0,
|
||||
"free_throws_made" => 5,
|
||||
"free_throws_attempted" => 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(
|
||||
team_data,
|
||||
"players.61.statistics.average_points_per_game"
|
||||
) === 5.0
|
||||
end
|
||||
end
|
||||
|
||||
describe "extract_from_path returns nil from nonexistent last key in" do
|
||||
@tag task_id: 1
|
||||
test "first layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(team_data, "team_song") == nil
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "second layer" do
|
||||
team_data = %{
|
||||
"coach" => %{
|
||||
"first_name" => "Jane",
|
||||
"last_name" => "Brown"
|
||||
},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(team_data, "coach.age") == nil
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "third layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"32" => %{
|
||||
"first_name" => "Deni",
|
||||
"last_name" => "Lidster",
|
||||
"email" => nil,
|
||||
"statistics" => %{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(team_data, "players.32.height") == nil
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "fourth layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"12" => %{
|
||||
"first_name" => "Andy",
|
||||
"last_name" => "Napoli",
|
||||
"email" => "anapoli7@goodreads.com",
|
||||
"statistics" => %{
|
||||
"average_points_per_game" => 7
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(
|
||||
team_data,
|
||||
"players.12.statistics.personal_fouls"
|
||||
) == nil
|
||||
end
|
||||
end
|
||||
|
||||
@tag task_id: 1
|
||||
test "extract_from_path returns nil from nonexistent path" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.extract_from_path(
|
||||
team_data,
|
||||
"support_personnel.physiotherapy.first_name"
|
||||
) == nil
|
||||
end
|
||||
|
||||
describe "get_in_path retrieves from" do
|
||||
@tag task_id: 2
|
||||
test "first layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "team_name") == "Hoop Masters"
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "second layer" do
|
||||
team_data = %{
|
||||
"coach" => %{
|
||||
"first_name" => "Jane",
|
||||
"last_name" => "Brown"
|
||||
},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "coach.first_name") == "Jane"
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "third layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"99" => %{
|
||||
"first_name" => "Amalee",
|
||||
"last_name" => "Tynemouth",
|
||||
"email" => "atynemouth0@yellowpages.com",
|
||||
"statistics" => %{}
|
||||
},
|
||||
"98" => %{
|
||||
"first_name" => "Tiffie",
|
||||
"last_name" => "Derle",
|
||||
"email" => "tderle1@vimeo.com",
|
||||
"statistics" => %{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "players.99.first_name") == "Amalee"
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "fourth layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"42" => %{
|
||||
"first_name" => "Conchita",
|
||||
"last_name" => "Elham",
|
||||
"email" => "celham4@wikia.com",
|
||||
"statistics" => %{
|
||||
"average_points_per_game" => 4.6,
|
||||
"free_throws_made" => 7,
|
||||
"free_throws_attempted" => 10
|
||||
}
|
||||
},
|
||||
"61" => %{
|
||||
"first_name" => "Noel",
|
||||
"last_name" => "Fawlkes",
|
||||
"email" => "nfawlkes5@yahoo.co.jp",
|
||||
"statistics" => %{
|
||||
"average_points_per_game" => 5.0,
|
||||
"free_throws_made" => 5,
|
||||
"free_throws_attempted" => 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(
|
||||
team_data,
|
||||
"players.61.statistics.average_points_per_game"
|
||||
) === 5.0
|
||||
end
|
||||
end
|
||||
|
||||
describe "get_in_path returns nil from nonexistent last key in" do
|
||||
@tag task_id: 2
|
||||
test "first layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "team_song") == nil
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "second layer" do
|
||||
team_data = %{
|
||||
"coach" => %{
|
||||
"first_name" => "Jane",
|
||||
"last_name" => "Brown"
|
||||
},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "coach.age") == nil
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "third layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"32" => %{
|
||||
"first_name" => "Deni",
|
||||
"last_name" => "Lidster",
|
||||
"email" => nil,
|
||||
"statistics" => %{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "players.32.height") == nil
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "fourth layer" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{
|
||||
"12" => %{
|
||||
"first_name" => "Andy",
|
||||
"last_name" => "Napoli",
|
||||
"email" => "anapoli7@goodreads.com",
|
||||
"statistics" => %{
|
||||
"average_points_per_game" => 7
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "players.12.statistics.personal_fouls") ==
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
@tag task_id: 2
|
||||
test "get_in_path returns nil from nonexistent path" do
|
||||
team_data = %{
|
||||
"coach" => %{},
|
||||
"team_name" => "Hoop Masters",
|
||||
"players" => %{}
|
||||
}
|
||||
|
||||
assert BasketballWebsite.get_in_path(team_data, "support_personnel.physiotherapy.first_name") ==
|
||||
nil
|
||||
end
|
||||
end
|
2
elixir/basketball-website/test/test_helper.exs
Normal file
2
elixir/basketball-website/test/test_helper.exs
Normal file
@@ -0,0 +1,2 @@
|
||||
ExUnit.start()
|
||||
ExUnit.configure(exclude: :pending, trace: true, seed: 0)
|
Reference in New Issue
Block a user