Просмотр исходного кода

Improve test coverage for pooler module

Seth Falcon 12 лет назад
Родитель
Сommit
7be93560a9
1 измененных файлов с 30 добавлено и 0 удалено
  1. 30 0
      test/pooler_tests.erl

+ 30 - 0
test/pooler_tests.erl

@@ -266,6 +266,13 @@ pooler_basics_test_() ->
                Metrics = fake_metrics:get_metrics(),
                GotKeys = lists:usort([ Name || {Name, _, _} <- Metrics ]),
                ?assertEqual(ExpectKeys, GotKeys)
+       end},
+
+      {"accept bad member is handled",
+       fun() ->
+               Bad = spawn(fun() -> ok end),
+               Ref = erlang:make_ref(),
+               ?assertEqual(ok, pooler:accept_member(test_pool_1, {Ref, Bad}))
        end}
      ]}}.
 
@@ -333,6 +340,18 @@ pooler_groups_test_() ->
                             pooler:take_group_member(not_a_group))
        end},
 
+      {"return member to unknown group",
+       fun() ->
+               Pid = pooler:take_group_member(group_1),
+               ?assertEqual(ok, pooler:return_group_member(no_such_group, Pid))
+       end},
+
+      {"return member to wrong group",
+       fun() ->
+               Pid = pooler:take_member(test_pool_3),
+               ?assertEqual(ok, pooler:return_group_member(group_1, Pid))
+       end},
+
       {"return member to group, implied ok",
        fun() ->
                Pid = pooler:take_group_member(group_1),
@@ -470,9 +489,20 @@ random_message_test_() ->
      end,
     [
      fun() ->
+             Pid = spawn(fun() -> ok end),
+             MonMsg = {'DOWN', erlang:make_ref(), process, Pid, because},
+             test_pool_1 ! MonMsg
+     end,
+
+     fun() ->
              Pid = pooler:take_member(test_pool_1),
              {Type, _} =  pooled_gs:get_id(Pid),
              ?assertEqual("type-0", Type)
+     end,
+
+     fun() ->
+             RawPool = gen_server:call(test_pool_1, dump_pool),
+             ?assertEqual(pool, element(1, RawPool))
      end
     ]}.