1644
1644
EXPECT_TRUE(serialized == expected);
1647
void TestUtil::ExpectLastRepeatedsRemoved(
1648
const unittest::TestAllTypes& message) {
1649
ASSERT_EQ(1, message.repeated_int32_size ());
1650
ASSERT_EQ(1, message.repeated_int64_size ());
1651
ASSERT_EQ(1, message.repeated_uint32_size ());
1652
ASSERT_EQ(1, message.repeated_uint64_size ());
1653
ASSERT_EQ(1, message.repeated_sint32_size ());
1654
ASSERT_EQ(1, message.repeated_sint64_size ());
1655
ASSERT_EQ(1, message.repeated_fixed32_size ());
1656
ASSERT_EQ(1, message.repeated_fixed64_size ());
1657
ASSERT_EQ(1, message.repeated_sfixed32_size());
1658
ASSERT_EQ(1, message.repeated_sfixed64_size());
1659
ASSERT_EQ(1, message.repeated_float_size ());
1660
ASSERT_EQ(1, message.repeated_double_size ());
1661
ASSERT_EQ(1, message.repeated_bool_size ());
1662
ASSERT_EQ(1, message.repeated_string_size ());
1663
ASSERT_EQ(1, message.repeated_bytes_size ());
1665
ASSERT_EQ(1, message.repeatedgroup_size ());
1666
ASSERT_EQ(1, message.repeated_nested_message_size ());
1667
ASSERT_EQ(1, message.repeated_foreign_message_size());
1668
ASSERT_EQ(1, message.repeated_import_message_size ());
1669
ASSERT_EQ(1, message.repeated_nested_enum_size ());
1670
ASSERT_EQ(1, message.repeated_foreign_enum_size ());
1671
ASSERT_EQ(1, message.repeated_import_enum_size ());
1673
#ifndef PROTOBUF_TEST_NO_DESCRIPTORS
1674
ASSERT_EQ(1, message.repeated_string_piece_size());
1675
ASSERT_EQ(1, message.repeated_cord_size());
1678
// Test that the remaining element is the correct one.
1679
EXPECT_EQ(201 , message.repeated_int32 (0));
1680
EXPECT_EQ(202 , message.repeated_int64 (0));
1681
EXPECT_EQ(203 , message.repeated_uint32 (0));
1682
EXPECT_EQ(204 , message.repeated_uint64 (0));
1683
EXPECT_EQ(205 , message.repeated_sint32 (0));
1684
EXPECT_EQ(206 , message.repeated_sint64 (0));
1685
EXPECT_EQ(207 , message.repeated_fixed32 (0));
1686
EXPECT_EQ(208 , message.repeated_fixed64 (0));
1687
EXPECT_EQ(209 , message.repeated_sfixed32(0));
1688
EXPECT_EQ(210 , message.repeated_sfixed64(0));
1689
EXPECT_EQ(211 , message.repeated_float (0));
1690
EXPECT_EQ(212 , message.repeated_double (0));
1691
EXPECT_EQ(true , message.repeated_bool (0));
1692
EXPECT_EQ("215", message.repeated_string (0));
1693
EXPECT_EQ("216", message.repeated_bytes (0));
1695
EXPECT_EQ(217, message.repeatedgroup (0).a());
1696
EXPECT_EQ(218, message.repeated_nested_message (0).bb());
1697
EXPECT_EQ(219, message.repeated_foreign_message(0).c());
1698
EXPECT_EQ(220, message.repeated_import_message (0).d());
1700
EXPECT_EQ(unittest::TestAllTypes::BAR, message.repeated_nested_enum (0));
1701
EXPECT_EQ(unittest::FOREIGN_BAR , message.repeated_foreign_enum(0));
1702
EXPECT_EQ(unittest_import::IMPORT_BAR, message.repeated_import_enum (0));
1705
void TestUtil::ExpectLastRepeatedExtensionsRemoved(
1706
const unittest::TestAllExtensions& message) {
1708
// Test that one element was removed.
1709
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_int32_extension ));
1710
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_int64_extension ));
1711
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_uint32_extension ));
1712
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_uint64_extension ));
1713
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_sint32_extension ));
1714
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_sint64_extension ));
1715
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_fixed32_extension ));
1716
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_fixed64_extension ));
1717
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_sfixed32_extension));
1718
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_sfixed64_extension));
1719
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_float_extension ));
1720
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_double_extension ));
1721
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_bool_extension ));
1722
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_string_extension ));
1723
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_bytes_extension ));
1725
ASSERT_EQ(1, message.ExtensionSize(unittest::repeatedgroup_extension ));
1726
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_nested_message_extension ));
1727
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_foreign_message_extension));
1728
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_import_message_extension ));
1729
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_nested_enum_extension ));
1730
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_foreign_enum_extension ));
1731
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_import_enum_extension ));
1733
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_string_piece_extension));
1734
ASSERT_EQ(1, message.ExtensionSize(unittest::repeated_cord_extension));
1736
// Test that the remaining element is the correct one.
1737
EXPECT_EQ(201 , message.GetExtension(unittest::repeated_int32_extension , 0));
1738
EXPECT_EQ(202 , message.GetExtension(unittest::repeated_int64_extension , 0));
1739
EXPECT_EQ(203 , message.GetExtension(unittest::repeated_uint32_extension , 0));
1740
EXPECT_EQ(204 , message.GetExtension(unittest::repeated_uint64_extension , 0));
1741
EXPECT_EQ(205 , message.GetExtension(unittest::repeated_sint32_extension , 0));
1742
EXPECT_EQ(206 , message.GetExtension(unittest::repeated_sint64_extension , 0));
1743
EXPECT_EQ(207 , message.GetExtension(unittest::repeated_fixed32_extension , 0));
1744
EXPECT_EQ(208 , message.GetExtension(unittest::repeated_fixed64_extension , 0));
1745
EXPECT_EQ(209 , message.GetExtension(unittest::repeated_sfixed32_extension, 0));
1746
EXPECT_EQ(210 , message.GetExtension(unittest::repeated_sfixed64_extension, 0));
1747
EXPECT_EQ(211 , message.GetExtension(unittest::repeated_float_extension , 0));
1748
EXPECT_EQ(212 , message.GetExtension(unittest::repeated_double_extension , 0));
1749
EXPECT_EQ(true , message.GetExtension(unittest::repeated_bool_extension , 0));
1750
EXPECT_EQ("215", message.GetExtension(unittest::repeated_string_extension , 0));
1751
EXPECT_EQ("216", message.GetExtension(unittest::repeated_bytes_extension , 0));
1753
EXPECT_EQ(217, message.GetExtension(unittest::repeatedgroup_extension , 0).a());
1754
EXPECT_EQ(218, message.GetExtension(unittest::repeated_nested_message_extension , 0).bb());
1755
EXPECT_EQ(219, message.GetExtension(unittest::repeated_foreign_message_extension, 0).c());
1756
EXPECT_EQ(220, message.GetExtension(unittest::repeated_import_message_extension , 0).d());
1758
EXPECT_EQ(unittest::TestAllTypes::BAR, message.GetExtension(unittest::repeated_nested_enum_extension , 0));
1759
EXPECT_EQ(unittest::FOREIGN_BAR , message.GetExtension(unittest::repeated_foreign_enum_extension, 0));
1760
EXPECT_EQ(unittest_import::IMPORT_BAR, message.GetExtension(unittest::repeated_import_enum_extension , 0));
1762
EXPECT_EQ("224", message.GetExtension(unittest::repeated_string_piece_extension, 0));
1763
EXPECT_EQ("225", message.GetExtension(unittest::repeated_cord_extension, 0));
1766
void TestUtil::ExpectRepeatedsSwapped(
1767
const unittest::TestAllTypes& message) {
1768
ASSERT_EQ(2, message.repeated_int32_size ());
1769
ASSERT_EQ(2, message.repeated_int64_size ());
1770
ASSERT_EQ(2, message.repeated_uint32_size ());
1771
ASSERT_EQ(2, message.repeated_uint64_size ());
1772
ASSERT_EQ(2, message.repeated_sint32_size ());
1773
ASSERT_EQ(2, message.repeated_sint64_size ());
1774
ASSERT_EQ(2, message.repeated_fixed32_size ());
1775
ASSERT_EQ(2, message.repeated_fixed64_size ());
1776
ASSERT_EQ(2, message.repeated_sfixed32_size());
1777
ASSERT_EQ(2, message.repeated_sfixed64_size());
1778
ASSERT_EQ(2, message.repeated_float_size ());
1779
ASSERT_EQ(2, message.repeated_double_size ());
1780
ASSERT_EQ(2, message.repeated_bool_size ());
1781
ASSERT_EQ(2, message.repeated_string_size ());
1782
ASSERT_EQ(2, message.repeated_bytes_size ());
1784
ASSERT_EQ(2, message.repeatedgroup_size ());
1785
ASSERT_EQ(2, message.repeated_nested_message_size ());
1786
ASSERT_EQ(2, message.repeated_foreign_message_size());
1787
ASSERT_EQ(2, message.repeated_import_message_size ());
1788
ASSERT_EQ(2, message.repeated_nested_enum_size ());
1789
ASSERT_EQ(2, message.repeated_foreign_enum_size ());
1790
ASSERT_EQ(2, message.repeated_import_enum_size ());
1792
#ifndef PROTOBUF_TEST_NO_DESCRIPTORS
1793
ASSERT_EQ(2, message.repeated_string_piece_size());
1794
ASSERT_EQ(2, message.repeated_cord_size());
1797
// Test that the first element and second element are flipped.
1798
EXPECT_EQ(201 , message.repeated_int32 (1));
1799
EXPECT_EQ(202 , message.repeated_int64 (1));
1800
EXPECT_EQ(203 , message.repeated_uint32 (1));
1801
EXPECT_EQ(204 , message.repeated_uint64 (1));
1802
EXPECT_EQ(205 , message.repeated_sint32 (1));
1803
EXPECT_EQ(206 , message.repeated_sint64 (1));
1804
EXPECT_EQ(207 , message.repeated_fixed32 (1));
1805
EXPECT_EQ(208 , message.repeated_fixed64 (1));
1806
EXPECT_EQ(209 , message.repeated_sfixed32(1));
1807
EXPECT_EQ(210 , message.repeated_sfixed64(1));
1808
EXPECT_EQ(211 , message.repeated_float (1));
1809
EXPECT_EQ(212 , message.repeated_double (1));
1810
EXPECT_EQ(true , message.repeated_bool (1));
1811
EXPECT_EQ("215", message.repeated_string (1));
1812
EXPECT_EQ("216", message.repeated_bytes (1));
1814
EXPECT_EQ(217, message.repeatedgroup (1).a());
1815
EXPECT_EQ(218, message.repeated_nested_message (1).bb());
1816
EXPECT_EQ(219, message.repeated_foreign_message(1).c());
1817
EXPECT_EQ(220, message.repeated_import_message (1).d());
1819
EXPECT_EQ(unittest::TestAllTypes::BAR, message.repeated_nested_enum (1));
1820
EXPECT_EQ(unittest::FOREIGN_BAR , message.repeated_foreign_enum(1));
1821
EXPECT_EQ(unittest_import::IMPORT_BAR, message.repeated_import_enum (1));
1823
EXPECT_EQ(301 , message.repeated_int32 (0));
1824
EXPECT_EQ(302 , message.repeated_int64 (0));
1825
EXPECT_EQ(303 , message.repeated_uint32 (0));
1826
EXPECT_EQ(304 , message.repeated_uint64 (0));
1827
EXPECT_EQ(305 , message.repeated_sint32 (0));
1828
EXPECT_EQ(306 , message.repeated_sint64 (0));
1829
EXPECT_EQ(307 , message.repeated_fixed32 (0));
1830
EXPECT_EQ(308 , message.repeated_fixed64 (0));
1831
EXPECT_EQ(309 , message.repeated_sfixed32(0));
1832
EXPECT_EQ(310 , message.repeated_sfixed64(0));
1833
EXPECT_EQ(311 , message.repeated_float (0));
1834
EXPECT_EQ(312 , message.repeated_double (0));
1835
EXPECT_EQ(false, message.repeated_bool (0));
1836
EXPECT_EQ("315", message.repeated_string (0));
1837
EXPECT_EQ("316", message.repeated_bytes (0));
1839
EXPECT_EQ(317, message.repeatedgroup (0).a());
1840
EXPECT_EQ(318, message.repeated_nested_message (0).bb());
1841
EXPECT_EQ(319, message.repeated_foreign_message(0).c());
1842
EXPECT_EQ(320, message.repeated_import_message (0).d());
1844
EXPECT_EQ(unittest::TestAllTypes::BAZ, message.repeated_nested_enum (0));
1845
EXPECT_EQ(unittest::FOREIGN_BAZ , message.repeated_foreign_enum(0));
1846
EXPECT_EQ(unittest_import::IMPORT_BAZ, message.repeated_import_enum (0));
1849
void TestUtil::ExpectRepeatedExtensionsSwapped(
1850
const unittest::TestAllExtensions& message) {
1852
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_int32_extension ));
1853
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_int64_extension ));
1854
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_uint32_extension ));
1855
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_uint64_extension ));
1856
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_sint32_extension ));
1857
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_sint64_extension ));
1858
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_fixed32_extension ));
1859
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_fixed64_extension ));
1860
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_sfixed32_extension));
1861
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_sfixed64_extension));
1862
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_float_extension ));
1863
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_double_extension ));
1864
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_bool_extension ));
1865
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_string_extension ));
1866
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_bytes_extension ));
1868
ASSERT_EQ(2, message.ExtensionSize(unittest::repeatedgroup_extension ));
1869
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_nested_message_extension ));
1870
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_foreign_message_extension));
1871
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_import_message_extension ));
1872
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_nested_enum_extension ));
1873
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_foreign_enum_extension ));
1874
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_import_enum_extension ));
1876
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_string_piece_extension));
1877
ASSERT_EQ(2, message.ExtensionSize(unittest::repeated_cord_extension));
1879
EXPECT_EQ(201 , message.GetExtension(unittest::repeated_int32_extension , 1));
1880
EXPECT_EQ(202 , message.GetExtension(unittest::repeated_int64_extension , 1));
1881
EXPECT_EQ(203 , message.GetExtension(unittest::repeated_uint32_extension , 1));
1882
EXPECT_EQ(204 , message.GetExtension(unittest::repeated_uint64_extension , 1));
1883
EXPECT_EQ(205 , message.GetExtension(unittest::repeated_sint32_extension , 1));
1884
EXPECT_EQ(206 , message.GetExtension(unittest::repeated_sint64_extension , 1));
1885
EXPECT_EQ(207 , message.GetExtension(unittest::repeated_fixed32_extension , 1));
1886
EXPECT_EQ(208 , message.GetExtension(unittest::repeated_fixed64_extension , 1));
1887
EXPECT_EQ(209 , message.GetExtension(unittest::repeated_sfixed32_extension, 1));
1888
EXPECT_EQ(210 , message.GetExtension(unittest::repeated_sfixed64_extension, 1));
1889
EXPECT_EQ(211 , message.GetExtension(unittest::repeated_float_extension , 1));
1890
EXPECT_EQ(212 , message.GetExtension(unittest::repeated_double_extension , 1));
1891
EXPECT_EQ(true , message.GetExtension(unittest::repeated_bool_extension , 1));
1892
EXPECT_EQ("215", message.GetExtension(unittest::repeated_string_extension , 1));
1893
EXPECT_EQ("216", message.GetExtension(unittest::repeated_bytes_extension , 1));
1895
EXPECT_EQ(217, message.GetExtension(unittest::repeatedgroup_extension , 1).a());
1896
EXPECT_EQ(218, message.GetExtension(unittest::repeated_nested_message_extension , 1).bb());
1897
EXPECT_EQ(219, message.GetExtension(unittest::repeated_foreign_message_extension, 1).c());
1898
EXPECT_EQ(220, message.GetExtension(unittest::repeated_import_message_extension , 1).d());
1900
EXPECT_EQ(unittest::TestAllTypes::BAR, message.GetExtension(unittest::repeated_nested_enum_extension , 1));
1901
EXPECT_EQ(unittest::FOREIGN_BAR , message.GetExtension(unittest::repeated_foreign_enum_extension, 1));
1902
EXPECT_EQ(unittest_import::IMPORT_BAR, message.GetExtension(unittest::repeated_import_enum_extension , 1));
1904
EXPECT_EQ("224", message.GetExtension(unittest::repeated_string_piece_extension, 1));
1905
EXPECT_EQ("225", message.GetExtension(unittest::repeated_cord_extension, 1));
1907
EXPECT_EQ(301 , message.GetExtension(unittest::repeated_int32_extension , 0));
1908
EXPECT_EQ(302 , message.GetExtension(unittest::repeated_int64_extension , 0));
1909
EXPECT_EQ(303 , message.GetExtension(unittest::repeated_uint32_extension , 0));
1910
EXPECT_EQ(304 , message.GetExtension(unittest::repeated_uint64_extension , 0));
1911
EXPECT_EQ(305 , message.GetExtension(unittest::repeated_sint32_extension , 0));
1912
EXPECT_EQ(306 , message.GetExtension(unittest::repeated_sint64_extension , 0));
1913
EXPECT_EQ(307 , message.GetExtension(unittest::repeated_fixed32_extension , 0));
1914
EXPECT_EQ(308 , message.GetExtension(unittest::repeated_fixed64_extension , 0));
1915
EXPECT_EQ(309 , message.GetExtension(unittest::repeated_sfixed32_extension, 0));
1916
EXPECT_EQ(310 , message.GetExtension(unittest::repeated_sfixed64_extension, 0));
1917
EXPECT_EQ(311 , message.GetExtension(unittest::repeated_float_extension , 0));
1918
EXPECT_EQ(312 , message.GetExtension(unittest::repeated_double_extension , 0));
1919
EXPECT_EQ(false, message.GetExtension(unittest::repeated_bool_extension , 0));
1920
EXPECT_EQ("315", message.GetExtension(unittest::repeated_string_extension , 0));
1921
EXPECT_EQ("316", message.GetExtension(unittest::repeated_bytes_extension , 0));
1923
EXPECT_EQ(317, message.GetExtension(unittest::repeatedgroup_extension , 0).a());
1924
EXPECT_EQ(318, message.GetExtension(unittest::repeated_nested_message_extension , 0).bb());
1925
EXPECT_EQ(319, message.GetExtension(unittest::repeated_foreign_message_extension, 0).c());
1926
EXPECT_EQ(320, message.GetExtension(unittest::repeated_import_message_extension , 0).d());
1928
EXPECT_EQ(unittest::TestAllTypes::BAZ, message.GetExtension(unittest::repeated_nested_enum_extension , 0));
1929
EXPECT_EQ(unittest::FOREIGN_BAZ , message.GetExtension(unittest::repeated_foreign_enum_extension, 0));
1930
EXPECT_EQ(unittest_import::IMPORT_BAZ, message.GetExtension(unittest::repeated_import_enum_extension , 0));
1932
EXPECT_EQ("324", message.GetExtension(unittest::repeated_string_piece_extension, 0));
1933
EXPECT_EQ("325", message.GetExtension(unittest::repeated_cord_extension, 0));
1647
1936
// ===================================================================
1649
1938
TestUtil::ReflectionTester::ReflectionTester(