diff options
Diffstat (limited to 'third_party/protobuf/objectivec/Tests/GPBWellKnownTypesTest.m')
-rw-r--r-- | third_party/protobuf/objectivec/Tests/GPBWellKnownTypesTest.m | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/third_party/protobuf/objectivec/Tests/GPBWellKnownTypesTest.m b/third_party/protobuf/objectivec/Tests/GPBWellKnownTypesTest.m deleted file mode 100644 index 592d5afd4b..0000000000 --- a/third_party/protobuf/objectivec/Tests/GPBWellKnownTypesTest.m +++ /dev/null @@ -1,214 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2015 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#import "GPBWellKnownTypes.h" - -#import <XCTest/XCTest.h> - -#import "GPBTestUtilities.h" -#import "google/protobuf/AnyTest.pbobjc.h" - -// Nanosecond time accuracy -static const NSTimeInterval kTimeAccuracy = 1e-9; - -@interface WellKnownTypesTest : XCTestCase -@end - -@implementation WellKnownTypesTest - -- (void)testTimeStamp { - // Test negative and positive values. - NSTimeInterval values[] = { - -428027599.483999967, -1234567.0, -0.5, 0, 0.75, 54321.0, 2468086,483999967 - }; - for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) { - NSTimeInterval value = values[i]; - - // Test Creation - date. - NSDate *date = [NSDate dateWithTimeIntervalSince1970:value]; - GPBTimestamp *timeStamp = [[GPBTimestamp alloc] initWithDate:date]; - - XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0, - @"Offset %f - Date: %@", (double)value, date); - XCTAssertLessThan(timeStamp.nanos, 1e9, - @"Offset %f - Date: %@", (double)value, date); - - // Comparing timeIntervals instead of directly comparing dates because date - // equality requires the time intervals to be exactly the same, and the - // timeintervals go through a bit of floating point error as they are - // converted back and forth from the internal representation. - XCTAssertEqualWithAccuracy(value, timeStamp.date.timeIntervalSince1970, - kTimeAccuracy, - @"Offset %f - Date: %@", (double)value, date); - [timeStamp release]; - - // Test Creation - timeIntervalSince1970. - timeStamp = [[GPBTimestamp alloc] initWithTimeIntervalSince1970:value]; - - XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0, - @"Offset %f - Date: %@", (double)value, date); - XCTAssertLessThan(timeStamp.nanos, 1e9, - @"Offset %f - Date: %@", (double)value, date); - - XCTAssertEqualWithAccuracy(value, timeStamp.timeIntervalSince1970, - kTimeAccuracy, - @"Offset %f - Date: %@", (double)value, date); - [timeStamp release]; - - // Test Mutation - date. - timeStamp = [[GPBTimestamp alloc] init]; - timeStamp.date = date; - - XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0, - @"Offset %f - Date: %@", (double)value, date); - XCTAssertLessThan(timeStamp.nanos, 1e9, - @"Offset %f - Date: %@", (double)value, date); - - XCTAssertEqualWithAccuracy(value, timeStamp.date.timeIntervalSince1970, - kTimeAccuracy, - @"Offset %f - Date: %@", (double)value, date); - [timeStamp release]; - - // Test Mutation - timeIntervalSince1970. - timeStamp = [[GPBTimestamp alloc] init]; - timeStamp.timeIntervalSince1970 = value; - - XCTAssertGreaterThanOrEqual(timeStamp.nanos, 0, - @"Offset %f - Date: %@", (double)value, date); - XCTAssertLessThan(timeStamp.nanos, 1e9, - @"Offset %f - Date: %@", (double)value, date); - - XCTAssertEqualWithAccuracy(value, timeStamp.date.timeIntervalSince1970, - kTimeAccuracy, - @"Offset %f - Date: %@", (double)value, date); - - [timeStamp release]; - } -} - -- (void)testDuration { - // Test negative and positive values. - NSTimeInterval values[] = { -1000.0001, -500.0, -0.5, 0, 0.75, 1000.0, 2000.0002 }; - for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) { - NSTimeInterval value = values[i]; - - // Test Creation. - GPBDuration *duration = - [[GPBDuration alloc] initWithTimeInterval:value]; - XCTAssertEqualWithAccuracy(value, duration.timeInterval, kTimeAccuracy, - @"For interval %f", (double)value); - if (value > 0) { - XCTAssertGreaterThanOrEqual(duration.seconds, 0, - @"For interval %f", (double)value); - XCTAssertGreaterThanOrEqual(duration.nanos, 0, - @"For interval %f", (double)value); - } else { - XCTAssertLessThanOrEqual(duration.seconds, 0, - @"For interval %f", (double)value); - XCTAssertLessThanOrEqual(duration.nanos, 0, - @"For interval %f", (double)value); - } - [duration release]; - - // Test Mutation. - duration = [[GPBDuration alloc] init]; - duration.timeInterval = value; - XCTAssertEqualWithAccuracy(value, duration.timeInterval, kTimeAccuracy, - @"For interval %f", (double)value); - if (value > 0) { - XCTAssertGreaterThanOrEqual(duration.seconds, 0, - @"For interval %f", (double)value); - XCTAssertGreaterThanOrEqual(duration.nanos, 0, - @"For interval %f", (double)value); - } else { - XCTAssertLessThanOrEqual(duration.seconds, 0, - @"For interval %f", (double)value); - XCTAssertLessThanOrEqual(duration.nanos, 0, - @"For interval %f", (double)value); - } - [duration release]; - } -} - -- (void)testAnyHelpers { - - // Set and extract covers most of the code. - - TestAny *subMessage = [TestAny message]; - subMessage.int32Value = 12345; - TestAny *message = [TestAny message]; - NSError *err = nil; - message.anyValue = [GPBAny anyWithMessage:subMessage error:&err]; - XCTAssertNil(err); - - NSData *data = message.data; - XCTAssertNotNil(data); - - TestAny *message2 = [TestAny parseFromData:data error:&err]; - XCTAssertNil(err); - XCTAssertNotNil(message2); - XCTAssertTrue(message2.hasAnyValue); - - TestAny *subMessage2 = - (TestAny *)[message.anyValue unpackMessageClass:[TestAny class] - error:&err]; - XCTAssertNil(err); - XCTAssertNotNil(subMessage2); - XCTAssertEqual(subMessage2.int32Value, 12345); - - // NULL errorPtr in the two calls. - - message.anyValue = [GPBAny anyWithMessage:subMessage error:NULL]; - NSData *data2 = message.data; - XCTAssertEqualObjects(data2, data); - - TestAny *subMessage3 = - (TestAny *)[message.anyValue unpackMessageClass:[TestAny class] - error:NULL]; - XCTAssertNotNil(subMessage3); - XCTAssertEqualObjects(subMessage2, subMessage3); - - // Try to extract wrong type. - - GPBTimestamp *wrongMessage = - (GPBTimestamp *)[message.anyValue unpackMessageClass:[GPBTimestamp class] - error:&err]; - XCTAssertNotNil(err); - XCTAssertNil(wrongMessage); - XCTAssertEqualObjects(err.domain, GPBWellKnownTypesErrorDomain); - XCTAssertEqual(err.code, GPBWellKnownTypesErrorCodeTypeURLMismatch); - - wrongMessage = - (GPBTimestamp *)[message.anyValue unpackMessageClass:[GPBTimestamp class] - error:NULL]; - XCTAssertNil(wrongMessage); -} - -@end |