github.com/insolar/vanilla@v0.0.0-20201023172447-248fdf805322/throw/wrap_test.go (about) 1 // Copyright 2020 Insolar Network Ltd. 2 // All rights reserved. 3 // This material is licensed under the Insolar License version 1.0, 4 // available at https://github.com/insolar/assured-ledger/blob/master/LICENSE.md. 5 6 package throw 7 8 import ( 9 "net" 10 "testing" 11 12 "github.com/stretchr/testify/require" 13 ) 14 15 type typedDetails1 struct { 16 Value int 17 } 18 19 type typedDetails2 struct { 20 Value string 21 } 22 23 func TestAsDetail(t *testing.T) { 24 err := E("A", typedDetails1{99}) 25 err = &net.OpError{Err: err, Op: "test"} 26 err = W(err, "B", typedDetails2{"xyz"}) 27 28 var data1 typedDetails1 29 var data2 typedDetails2 30 var data3 net.OpError 31 32 require.True(t, FindDetail(err, &data1)) 33 require.Equal(t, data1.Value, 99) 34 require.True(t, FindDetail(err, &data2)) 35 require.Equal(t, data2.Value, "xyz") 36 require.True(t, FindDetail(err, &data3)) 37 require.Equal(t, data3.Op, "test") 38 }