@@ -36,10 +36,12 @@ defmodule RegistryTest do
36
36
{ :ok , pid } = Registry . register ( registry , "hello" , :value )
37
37
assert is_pid ( pid )
38
38
assert Registry . keys ( registry , self ( ) ) == [ "hello" ]
39
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ :value ]
39
40
40
41
assert { :error , { :already_registered , pid } } = Registry . register ( registry , "hello" , :value )
41
42
assert pid == self ( )
42
43
assert Registry . keys ( registry , self ( ) ) == [ "hello" ]
44
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ :value ]
43
45
44
46
{ :ok , pid } = Registry . register ( registry , "world" , :value )
45
47
assert is_pid ( pid )
@@ -49,11 +51,15 @@ defmodule RegistryTest do
49
51
test "has unique registrations across processes" , % { registry: registry } do
50
52
{ _ , task } = register_task ( registry , "hello" , :value )
51
53
Process . link ( Process . whereis ( registry ) )
54
+ assert Registry . keys ( registry , task ) == [ "hello" ]
55
+ assert Registry . values ( registry , "hello" , task ) == [ :value ]
52
56
53
57
assert { :error , { :already_registered , ^ task } } =
54
58
Registry . register ( registry , "hello" , :recent )
55
59
56
60
assert Registry . keys ( registry , self ( ) ) == [ ]
61
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ ]
62
+
57
63
{ :links , links } = Process . info ( self ( ) , :links )
58
64
assert Process . whereis ( registry ) in links
59
65
end
@@ -433,16 +439,30 @@ defmodule RegistryTest do
433
439
{ :ok , pid } = Registry . register ( registry , "hello" , :value )
434
440
assert is_pid ( pid )
435
441
assert Registry . keys ( registry , self ( ) ) == [ "hello" ]
442
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ :value ]
436
443
437
444
assert { :ok , pid } = Registry . register ( registry , "hello" , :value )
438
445
assert is_pid ( pid )
439
446
assert Registry . keys ( registry , self ( ) ) == [ "hello" , "hello" ]
447
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ :value , :value ]
440
448
441
449
{ :ok , pid } = Registry . register ( registry , "world" , :value )
442
450
assert is_pid ( pid )
443
451
assert Registry . keys ( registry , self ( ) ) |> Enum . sort ( ) == [ "hello" , "hello" , "world" ]
444
452
end
445
453
454
+ test "has duplicate registrations across processes" , % { registry: registry } do
455
+ { _ , task } = register_task ( registry , "hello" , :world )
456
+ assert Registry . keys ( registry , self ( ) ) == [ ]
457
+ assert Registry . keys ( registry , task ) == [ "hello" ]
458
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ ]
459
+ assert Registry . values ( registry , "hello" , task ) == [ :world ]
460
+
461
+ assert { :ok , _pid } = Registry . register ( registry , "hello" , :value )
462
+ assert Registry . keys ( registry , self ( ) ) == [ "hello" ]
463
+ assert Registry . values ( registry , "hello" , self ( ) ) == [ :value ]
464
+ end
465
+
446
466
test "compares using matches" , % { registry: registry } do
447
467
{ :ok , _ } = Registry . register ( registry , 1.0 , :value )
448
468
{ :ok , _ } = Registry . register ( registry , 1 , :value )
0 commit comments