defmodule LastFm.SessionTest do
use ExUnit.Case, async: true
doctest LastFm.Session
alias LastFm.Session
describe "parse/1" do
test "non-subscriber XML" do
xml = """
freeuser
free-key-123
0
"""
assert Session.parse(xml) == %Session{
name: "freeuser",
key: "free-key-123",
pro: false
}
end
test "missing subscriber node defaults pro to false" do
xml = """
basicuser
basic-key-456
"""
assert Session.parse(xml) == %Session{
name: "basicuser",
key: "basic-key-456",
pro: false
}
end
test "missing name node returns nil name" do
xml = """
some-key
1
"""
assert Session.parse(xml) == %Session{
name: nil,
key: "some-key",
pro: true
}
end
test "missing key node returns nil key" do
xml = """
mysteryuser
0
"""
assert Session.parse(xml) == %Session{
name: "mysteryuser",
key: nil,
pro: false
}
end
test "missing both name and key nodes returns nil values" do
xml = """
1
"""
assert Session.parse(xml) == %Session{
name: nil,
key: nil,
pro: true
}
end
end
end