1// Protocol Buffers - Google's data interchange format 2// Copyright 2008 Google Inc. All rights reserved. 3// https://developers.google.com/protocol-buffers/ 4// 5// Redistribution and use in source and binary forms, with or without 6// modification, are permitted provided that the following conditions are 7// met: 8// 9// * Redistributions of source code must retain the above copyright 10// notice, this list of conditions and the following disclaimer. 11// * Redistributions in binary form must reproduce the above 12// copyright notice, this list of conditions and the following disclaimer 13// in the documentation and/or other materials provided with the 14// distribution. 15// * Neither the name of Google Inc. nor the names of its 16// contributors may be used to endorse or promote products derived from 17// this software without specific prior written permission. 18// 19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 31#import <XCTest/XCTest.h> 32 33@class TestAllExtensions; 34@class TestAllTypes; 35@class TestMap; 36@class TestPackedTypes; 37@class TestPackedExtensions; 38@class TestUnpackedTypes; 39@class TestUnpackedExtensions; 40@class GPBExtensionRegistry; 41 42static inline NSData *DataFromCStr(const char *str) { 43 return [NSData dataWithBytes:str length:strlen(str)]; 44} 45 46// Helper for uses of C arrays in tests cases. 47#ifndef GPBARRAYSIZE 48#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0])))) 49#endif // GPBARRAYSIZE 50 51 52// The number of repetitions of any repeated objects inside of test messages. 53extern const uint32_t kGPBDefaultRepeatCount; 54 55@interface GPBTestCase : XCTestCase 56 57- (void)setAllFields:(TestAllTypes *)message repeatedCount:(uint32_t)count; 58- (void)clearAllFields:(TestAllTypes *)message; 59- (void)setAllExtensions:(TestAllExtensions *)message 60 repeatedCount:(uint32_t)count; 61- (void)setPackedFields:(TestPackedTypes *)message 62 repeatedCount:(uint32_t)count; 63- (void)setUnpackedFields:(TestUnpackedTypes *)message 64 repeatedCount:(uint32_t)count; 65- (void)setPackedExtensions:(TestPackedExtensions *)message 66 repeatedCount:(uint32_t)count; 67- (void)setUnpackedExtensions:(TestUnpackedExtensions *)message 68 repeatedCount:(uint32_t)count; 69- (void)setAllMapFields:(TestMap *)message numEntries:(uint32_t)count; 70 71- (TestAllTypes *)allSetRepeatedCount:(uint32_t)count; 72- (TestAllExtensions *)allExtensionsSetRepeatedCount:(uint32_t)count; 73- (TestPackedTypes *)packedSetRepeatedCount:(uint32_t)count; 74- (TestPackedExtensions *)packedExtensionsSetRepeatedCount:(uint32_t)count; 75 76- (void)assertAllFieldsSet:(TestAllTypes *)message 77 repeatedCount:(uint32_t)count; 78- (void)assertAllExtensionsSet:(TestAllExtensions *)message 79 repeatedCount:(uint32_t)count; 80- (void)assertRepeatedFieldsModified:(TestAllTypes *)message 81 repeatedCount:(uint32_t)count; 82- (void)assertRepeatedExtensionsModified:(TestAllExtensions *)message 83 repeatedCount:(uint32_t)count; 84- (void)assertExtensionsClear:(TestAllExtensions *)message; 85- (void)assertClear:(TestAllTypes *)message; 86- (void)assertPackedFieldsSet:(TestPackedTypes *)message 87 repeatedCount:(uint32_t)count; 88- (void)assertPackedExtensionsSet:(TestPackedExtensions *)message 89 repeatedCount:(uint32_t)count; 90 91- (void)modifyRepeatedExtensions:(TestAllExtensions *)message; 92- (void)modifyRepeatedFields:(TestAllTypes *)message; 93 94- (GPBExtensionRegistry *)extensionRegistry; 95 96- (NSData *)getDataFileNamed:(NSString *)name dataToWrite:(NSData *)dataToWrite; 97 98- (void)assertAllFieldsKVCMatch:(TestAllTypes *)message; 99- (void)setAllFieldsViaKVC:(TestAllTypes *)message 100 repeatedCount:(uint32_t)count; 101- (void)assertClearKVC:(TestAllTypes *)message; 102 103@end 104