@@ -1704,6 +1704,92 @@ func TestEmpty(t *testing.T) {
1704
1704
False (t , Empty (mockT , TString ("abc" )), "non-empty aliased string is empty" )
1705
1705
False (t , Empty (mockT , xP ), "ptr to non-nil value is not empty" )
1706
1706
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
+ }
1707
1793
}
1708
1794
1709
1795
func TestNotEmpty (t * testing.T ) {
@@ -1726,6 +1812,68 @@ func TestNotEmpty(t *testing.T) {
1726
1812
True (t , NotEmpty (mockT , true ), "True value is not empty" )
1727
1813
True (t , NotEmpty (mockT , chWithValue ), "Channel with values is not empty" )
1728
1814
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
+ }
1729
1877
}
1730
1878
1731
1879
func Test_getLen (t * testing.T ) {
0 commit comments