Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 1 | // Protocol Buffers - Google's data interchange format |
| 2 | // Copyright 2008 Google Inc. All rights reserved. |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 3 | // |
Joshua Haberman | 200c958 | 2023-09-08 17:42:37 -0700 | [diff] [blame] | 4 | // Use of this source code is governed by a BSD-style |
| 5 | // license that can be found in the LICENSE file or at |
| 6 | // https://developers.google.com/open-source/licenses/bsd |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 7 | |
| 8 | #import <XCTest/XCTest.h> |
| 9 | |
| 10 | @class TestAllExtensions; |
| 11 | @class TestAllTypes; |
| 12 | @class TestMap; |
| 13 | @class TestPackedTypes; |
| 14 | @class TestPackedExtensions; |
Thomas Van Lenten | d846b0b | 2015-06-08 16:24:57 -0400 | [diff] [blame] | 15 | @class TestUnpackedTypes; |
| 16 | @class TestUnpackedExtensions; |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 17 | @class GPBExtensionRegistry; |
| 18 | |
Sergio Campama | b1f954e | 2017-10-05 17:47:22 -0400 | [diff] [blame] | 19 | static inline NSData *DataFromCStr(const char *str) { |
| 20 | return [NSData dataWithBytes:str length:strlen(str)]; |
| 21 | } |
Thomas Van Lenten | 1dcc329 | 2015-05-21 17:14:52 -0400 | [diff] [blame] | 22 | |
| 23 | // Helper for uses of C arrays in tests cases. |
| 24 | #ifndef GPBARRAYSIZE |
| 25 | #define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0])))) |
| 26 | #endif // GPBARRAYSIZE |
| 27 | |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 28 | // The number of repetitions of any repeated objects inside of test messages. |
| 29 | extern const uint32_t kGPBDefaultRepeatCount; |
| 30 | |
| 31 | @interface GPBTestCase : XCTestCase |
| 32 | |
| 33 | - (void)setAllFields:(TestAllTypes *)message repeatedCount:(uint32_t)count; |
| 34 | - (void)clearAllFields:(TestAllTypes *)message; |
Thomas Van Lenten | ecd63bb | 2022-09-19 17:22:33 -0400 | [diff] [blame] | 35 | - (void)setAllExtensions:(TestAllExtensions *)message repeatedCount:(uint32_t)count; |
| 36 | - (void)setPackedFields:(TestPackedTypes *)message repeatedCount:(uint32_t)count; |
| 37 | - (void)setUnpackedFields:(TestUnpackedTypes *)message repeatedCount:(uint32_t)count; |
| 38 | - (void)setPackedExtensions:(TestPackedExtensions *)message repeatedCount:(uint32_t)count; |
| 39 | - (void)setUnpackedExtensions:(TestUnpackedExtensions *)message repeatedCount:(uint32_t)count; |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 40 | - (void)setAllMapFields:(TestMap *)message numEntries:(uint32_t)count; |
| 41 | |
| 42 | - (TestAllTypes *)allSetRepeatedCount:(uint32_t)count; |
| 43 | - (TestAllExtensions *)allExtensionsSetRepeatedCount:(uint32_t)count; |
| 44 | - (TestPackedTypes *)packedSetRepeatedCount:(uint32_t)count; |
| 45 | - (TestPackedExtensions *)packedExtensionsSetRepeatedCount:(uint32_t)count; |
| 46 | |
Thomas Van Lenten | ecd63bb | 2022-09-19 17:22:33 -0400 | [diff] [blame] | 47 | - (void)assertAllFieldsSet:(TestAllTypes *)message repeatedCount:(uint32_t)count; |
| 48 | - (void)assertAllExtensionsSet:(TestAllExtensions *)message repeatedCount:(uint32_t)count; |
| 49 | - (void)assertRepeatedFieldsModified:(TestAllTypes *)message repeatedCount:(uint32_t)count; |
| 50 | - (void)assertRepeatedExtensionsModified:(TestAllExtensions *)message repeatedCount:(uint32_t)count; |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 51 | - (void)assertExtensionsClear:(TestAllExtensions *)message; |
| 52 | - (void)assertClear:(TestAllTypes *)message; |
Thomas Van Lenten | ecd63bb | 2022-09-19 17:22:33 -0400 | [diff] [blame] | 53 | - (void)assertPackedFieldsSet:(TestPackedTypes *)message repeatedCount:(uint32_t)count; |
| 54 | - (void)assertPackedExtensionsSet:(TestPackedExtensions *)message repeatedCount:(uint32_t)count; |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 55 | |
| 56 | - (void)modifyRepeatedExtensions:(TestAllExtensions *)message; |
| 57 | - (void)modifyRepeatedFields:(TestAllTypes *)message; |
| 58 | |
| 59 | - (GPBExtensionRegistry *)extensionRegistry; |
| 60 | |
| 61 | - (NSData *)getDataFileNamed:(NSString *)name dataToWrite:(NSData *)dataToWrite; |
| 62 | |
| 63 | - (void)assertAllFieldsKVCMatch:(TestAllTypes *)message; |
Thomas Van Lenten | ecd63bb | 2022-09-19 17:22:33 -0400 | [diff] [blame] | 64 | - (void)setAllFieldsViaKVC:(TestAllTypes *)message repeatedCount:(uint32_t)count; |
Thomas Van Lenten | 30650d8 | 2015-05-01 08:57:16 -0400 | [diff] [blame] | 65 | - (void)assertClearKVC:(TestAllTypes *)message; |
| 66 | |
| 67 | @end |