diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-08-22 21:26:41 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-08-22 21:26:41 -0400 |
| commit | c25a68894f3bce8a8e63289b46ecd6e29f5cc227 (patch) | |
| tree | 321a856b960ba6ccc11113c8d1e93a390b9e9d90 /val_test.go | |
| parent | 67e43f976e2e07252b786e584e0290a516630df6 (diff) | |
| download | share-c25a68894f3bce8a8e63289b46ecd6e29f5cc227.zip | |
val: add TryGet() methodv0.1.0
Diffstat (limited to 'val_test.go')
| -rw-r--r-- | val_test.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/val_test.go b/val_test.go index 188f8a8..c1b7766 100644 --- a/val_test.go +++ b/val_test.go @@ -34,6 +34,30 @@ func TestValSetRemote(t *testing.T) { <-done } +// Val.TryGet() before Set should fail. +func TestValTryGetFail(t *testing.T) { + sv := share.NewVal[int]() // type is arbitrary + defer sv.Close() + if v, ok := sv.TryGet(); ok { + t.Errorf("Val.TryGet() succeeded (returned %v) before value was set; expected to fail", v) + } +} + +// Val.TryGet() after Set should succeed. +func TestValTryGet(t *testing.T) { + sv := share.NewVal[string]() + defer sv.Close() + v := "foo" + sv.Set <- v + ret, ok := sv.TryGet() + if !ok { + t.Error("Val.TryGet() failed") + } + if *ret != v { + t.Errorf("Val.TryGet() returned %v; expected %v", ret, v) + } +} + func verifySameVal[T comparable](sv share.Val[T], v T, t *testing.T) { ret := sv.Get() if ret != v { |