summaryrefslogtreecommitdiff
path: root/test/matrix_app_service/bridge_test.exs
blob: 46acffbec5a03758d7587c4bc93a2ce48ae71755 (plain) (blame)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
defmodule MatrixAppService.BridgeTest do
  use MatrixAppService.DataCase

  alias MatrixAppService.Bridge

  describe "users" do
    alias MatrixAppService.Bridge.User

    @valid_attrs %{data: %{}, local_id: "some local_id", remote_id: "some remote_id"}
    @update_attrs %{data: %{}, local_id: "some updated local_id", remote_id: "some updated remote_id"}
    # @invalid_attrs %{data: nil, local_id: nil, remote_id: nil}

    def user_fixture(attrs \\ %{}) do
      {:ok, user} =
        attrs
        |> Enum.into(@valid_attrs)
        |> Bridge.create_user()

      user
    end

    test "list_users/0 returns all users" do
      user = user_fixture()
      assert Bridge.list_users() == [user]
    end

    test "get_user!/1 returns the user with given id" do
      user = user_fixture()
      assert Bridge.get_user!(user.id) == user
    end

    test "create_user/1 with valid data creates a user" do
      assert {:ok, %User{} = user} = Bridge.create_user(@valid_attrs)
      assert user.data == %{}
      assert user.local_id == "some local_id"
      assert user.remote_id == "some remote_id"
    end

#     test "create_user/1 with invalid data returns error changeset" do
#       assert {:error, %Ecto.Changeset{}} = Bridge.create_user(@invalid_attrs)
#     end

    test "update_user/2 with valid data updates the user" do
      user = user_fixture()
      assert {:ok, %User{} = user} = Bridge.update_user(user, @update_attrs)
      assert user.data == %{}
      assert user.local_id == "some updated local_id"
      assert user.remote_id == "some updated remote_id"
    end

#     test "update_user/2 with invalid data returns error changeset" do
#       user = user_fixture()
#       assert {:error, %Ecto.Changeset{}} = Bridge.update_user(user, @invalid_attrs)
#       assert user == Bridge.get_user!(user.id)
#     end

    test "delete_user/1 deletes the user" do
      user = user_fixture()
      assert {:ok, %User{}} = Bridge.delete_user(user)
      assert_raise Ecto.NoResultsError, fn -> Bridge.get_user!(user.id) end
    end

    test "change_user/1 returns a user changeset" do
      user = user_fixture()
      assert %Ecto.Changeset{} = Bridge.change_user(user)
    end
  end

  describe "rooms" do
    alias MatrixAppService.Bridge.Room

    @valid_attrs %{data: %{}, local_id: "some local_id", remote_id: "some remote_id"}
    @update_attrs %{data: %{}, local_id: "some updated local_id", remote_id: "some updated remote_id"}
    # @invalid_attrs %{data: nil, local_id: nil, remote_id: nil}

    def room_fixture(attrs \\ %{}) do
      {:ok, room} =
        attrs
        |> Enum.into(@valid_attrs)
        |> Bridge.create_room()

      room
    end

    test "list_rooms/0 returns all rooms" do
      room = room_fixture()
      assert Bridge.list_rooms() == [room]
    end

    test "get_room!/1 returns the room with given id" do
      room = room_fixture()
      assert Bridge.get_room!(room.id) == room
    end

    test "create_room/1 with valid data creates a room" do
      assert {:ok, %Room{} = room} = Bridge.create_room(@valid_attrs)
      assert room.data == %{}
      assert room.local_id == "some local_id"
      assert room.remote_id == "some remote_id"
    end

#     test "create_room/1 with invalid data returns error changeset" do
#       assert {:error, %Ecto.Changeset{}} = Bridge.create_room(@invalid_attrs)
#     end

    test "update_room/2 with valid data updates the room" do
      room = room_fixture()
      assert {:ok, %Room{} = room} = Bridge.update_room(room, @update_attrs)
      assert room.data == %{}
      assert room.local_id == "some updated local_id"
      assert room.remote_id == "some updated remote_id"
    end

#     test "update_room/2 with invalid data returns error changeset" do
#       room = room_fixture()
#       assert {:error, %Ecto.Changeset{}} = Bridge.update_room(room, @invalid_attrs)
#       assert room == Bridge.get_room!(room.id)
#     end

    test "delete_room/1 deletes the room" do
      room = room_fixture()
      assert {:ok, %Room{}} = Bridge.delete_room(room)
      assert_raise Ecto.NoResultsError, fn -> Bridge.get_room!(room.id) end
    end

    test "change_room/1 returns a room changeset" do
      room = room_fixture()
      assert %Ecto.Changeset{} = Bridge.change_room(room)
    end
  end
end