@@ -1704,6 +1704,92 @@ func TestEmpty(t *testing.T) {
17041704 False (t , Empty (mockT , TString ("abc" )), "non-empty aliased string is empty" )
17051705 False (t , Empty (mockT , xP ), "ptr to non-nil value is not empty" )
17061706 False (t , Empty (mockT , [1 ]int {42 }), "array is not state" )
1707+
1708+ // error messages validation
1709+ tests := []struct {
1710+ name string
1711+ value interface {}
1712+ expectedResult bool
1713+ expectedErrMsg string
1714+ }{
1715+ {
1716+ name : "Non Empty string is not empty" ,
1717+ value : "something" ,
1718+ expectedResult : false ,
1719+ expectedErrMsg : "Should be empty, but was something\n " ,
1720+ },
1721+ {
1722+ name : "Non nil object is not empty" ,
1723+ value : errors .New ("something" ),
1724+ expectedResult : false ,
1725+ expectedErrMsg : "Should be empty, but was something\n " ,
1726+ },
1727+ {
1728+ name : "Non empty string array is not empty" ,
1729+ value : []string {"something" },
1730+ expectedResult : false ,
1731+ expectedErrMsg : "Should be empty, but was [something]\n " ,
1732+ },
1733+ {
1734+ name : "Non-zero int value is not empty" ,
1735+ value : 1 ,
1736+ expectedResult : false ,
1737+ expectedErrMsg : "Should be empty, but was 1\n " ,
1738+ },
1739+ {
1740+ name : "True value is not empty" ,
1741+ value : true ,
1742+ expectedResult : false ,
1743+ expectedErrMsg : "Should be empty, but was true\n " ,
1744+ },
1745+ {
1746+ name : "Channel with values is not empty" ,
1747+ value : chWithValue ,
1748+ expectedResult : false ,
1749+ expectedErrMsg : fmt .Sprintf ("Should be empty, but was %v\n " , chWithValue ),
1750+ },
1751+ {
1752+ name : "struct with initialized values is empty" ,
1753+ value : TStruct {x : 1 },
1754+ expectedResult : false ,
1755+ expectedErrMsg : "Should be empty, but was {1}\n " ,
1756+ },
1757+ {
1758+ name : "non-empty aliased string is empty" ,
1759+ value : TString ("abc" ),
1760+ expectedResult : false ,
1761+ expectedErrMsg : "Should be empty, but was abc\n " ,
1762+ },
1763+ {
1764+ name : "ptr to non-nil value is not empty" ,
1765+ value : xP ,
1766+ expectedResult : false ,
1767+ expectedErrMsg : fmt .Sprintf ("Should be empty, but was %p\n " , xP ),
1768+ },
1769+ {
1770+ name : "array is not state" ,
1771+ value : [1 ]int {42 },
1772+ expectedResult : false ,
1773+ expectedErrMsg : "Should be empty, but was [42]\n " ,
1774+ },
1775+
1776+ // Here we are testing there is no error message on success
1777+ {
1778+ name : "Empty string is empty" ,
1779+ value : "" ,
1780+ expectedResult : true ,
1781+ expectedErrMsg : "" ,
1782+ },
1783+ }
1784+
1785+ for _ , tt := range tests {
1786+ tt := tt
1787+ t .Run (tt .name , func (t * testing.T ) {
1788+ mockCT := new (captureTestingT )
1789+ res := Empty (mockCT , tt .value )
1790+ mockCT .checkResultAndErrMsg (t , res , tt .expectedResult , tt .expectedErrMsg )
1791+ })
1792+ }
17071793}
17081794
17091795func TestNotEmpty (t * testing.T ) {
@@ -1726,6 +1812,68 @@ func TestNotEmpty(t *testing.T) {
17261812 True (t , NotEmpty (mockT , true ), "True value is not empty" )
17271813 True (t , NotEmpty (mockT , chWithValue ), "Channel with values is not empty" )
17281814 True (t , NotEmpty (mockT , [1 ]int {42 }), "array is not state" )
1815+
1816+ // error messages validation
1817+ tests := []struct {
1818+ name string
1819+ value interface {}
1820+ expectedResult bool
1821+ expectedErrMsg string
1822+ }{
1823+ {
1824+ name : "Empty string is empty" ,
1825+ value : "" ,
1826+ expectedResult : false ,
1827+ expectedErrMsg : `Should NOT be empty, but was ` + "\n " , // TODO FIX THIS strange error message
1828+ },
1829+ {
1830+ name : "Nil is empty" ,
1831+ value : nil ,
1832+ expectedResult : false ,
1833+ expectedErrMsg : "Should NOT be empty, but was <nil>\n " ,
1834+ },
1835+ {
1836+ name : "Empty string array is empty" ,
1837+ value : []string {},
1838+ expectedResult : false ,
1839+ expectedErrMsg : "Should NOT be empty, but was []\n " ,
1840+ },
1841+ {
1842+ name : "Zero int value is empty" ,
1843+ value : 0 ,
1844+ expectedResult : false ,
1845+ expectedErrMsg : "Should NOT be empty, but was 0\n " ,
1846+ },
1847+ {
1848+ name : "False value is empty" ,
1849+ value : false ,
1850+ expectedResult : false ,
1851+ expectedErrMsg : "Should NOT be empty, but was false\n " ,
1852+ },
1853+ {
1854+ name : "array is state" ,
1855+ value : [1 ]int {},
1856+ expectedResult : false ,
1857+ expectedErrMsg : "Should NOT be empty, but was [0]\n " ,
1858+ },
1859+
1860+ // Here we are testing there is no error message on success
1861+ {
1862+ name : "Non Empty string is not empty" ,
1863+ value : "something" ,
1864+ expectedResult : true ,
1865+ expectedErrMsg : "" ,
1866+ },
1867+ }
1868+
1869+ for _ , tt := range tests {
1870+ tt := tt
1871+ t .Run (tt .name , func (t * testing.T ) {
1872+ mockCT := new (captureTestingT )
1873+ res := NotEmpty (mockCT , tt .value )
1874+ mockCT .checkResultAndErrMsg (t , tt .expectedResult , res , tt .expectedErrMsg )
1875+ })
1876+ }
17291877}
17301878
17311879func Test_getLen (t * testing.T ) {
0 commit comments