github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/system/initial/assertions/assertions.go (about) 1 // This file is part of the Smart Home 2 // Program complex distribution https://github.com/e154/smart-home 3 // Copyright (C) 2016-2023, Filippov Alex 4 // 5 // This library is free software: you can redistribute it and/or 6 // modify it under the terms of the GNU Lesser General Public 7 // License as published by the Free Software Foundation; either 8 // version 3 of the License, or (at your option) any later version. 9 // 10 // This library is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 // Library General Public License for more details. 14 // 15 // You should have received a copy of the GNU Lesser General Public 16 // License along with this library. If not, see 17 // <https://www.gnu.org/licenses/>. 18 19 package assertions 20 21 import ( 22 "fmt" 23 24 adaptors2 "github.com/e154/smart-home/adaptors" 25 "github.com/smartystreets/assertions" 26 "github.com/smartystreets/goconvey/convey/reporting" 27 ) 28 29 const assertionSuccess = "" 30 31 var ( 32 // ShouldEqual ... 33 ShouldEqual = assertions.ShouldEqual 34 // ShouldBeNil ... 35 ShouldBeNil = assertions.ShouldBeNil 36 // ShouldBeZeroValue ... 37 ShouldBeZeroValue = assertions.ShouldBeZeroValue 38 adaptors *adaptors2.Adaptors 39 ) 40 41 type assertion func(actual interface{}, expected ...interface{}) string 42 43 // So ... 44 func So(actual interface{}, assert assertion, expected ...interface{}) { 45 if result := assert(actual, expected...); result == assertionSuccess { 46 fmt.Printf(".") 47 } else { 48 fmt.Println() 49 if adaptors != nil { 50 _ = adaptors.Rollback() 51 } 52 panic(any(fmt.Sprintf("%v", reporting.NewFailureReport(result)))) 53 } 54 } 55 56 // SetAdaptors ... 57 func SetAdaptors(adaptors *adaptors2.Adaptors) { 58 59 }