TwitterNetworkLayerTests/TNLHTTPTests.m (35 lines of code) (raw):
//
// TNLHTTPTests.m
// TwitterNetworkLayer
//
// Created on 10/30/15.
// Copyright © 2020 Twitter. All rights reserved.
//
#import "TNLHTTP.h"
@import XCTest;
@interface TNLHTTPTests : XCTestCase
@end
@implementation TNLHTTPTests
- (void)testHTTPDates
{
NSString *RFC822DateString = @"Sun, 06 Nov 1994 08:49:37 GMT";
NSString *RFC850DateString = @"Sunday, 06-Nov-94 08:49:37 GMT";
NSString *asctimeDateString = @"Sun Nov 6 08:49:37 1994";
NSDate *date = [NSDate dateWithTimeIntervalSince1970:784111777LL];
TNLHTTPDateFormat format = TNLHTTPDateFormatUnknown;
// Parse valid
XCTAssertEqualObjects(TNLHTTPDateFromString(RFC822DateString, &format), date);
XCTAssertEqual(format, TNLHTTPDateFormatRFC822);
XCTAssertEqualObjects(TNLHTTPDateFromString(RFC850DateString, &format), date);
XCTAssertEqual(format, TNLHTTPDateFormatRFC850);
XCTAssertEqualObjects(TNLHTTPDateFromString(asctimeDateString, &format), date);
XCTAssertEqual(format, TNLHTTPDateFormatANSIC);
// Parse invalid
format = TNLHTTPDateFormatANSIC;
XCTAssertNil(TNLHTTPDateFromString(@"", &format));
XCTAssertEqual(format, TNLHTTPDateFormatUnknown);
format = TNLHTTPDateFormatANSIC;
XCTAssertNil(TNLHTTPDateFromString(@"Blah, Blah, Blah", &format));
XCTAssertEqual(format, TNLHTTPDateFormatUnknown);
format = TNLHTTPDateFormatANSIC;
XCTAssertNil(TNLHTTPDateFromString(nil, &format));
XCTAssertEqual(format, TNLHTTPDateFormatUnknown);
// Write valid
XCTAssertEqualObjects(TNLHTTPDateToString(date, TNLHTTPDateFormatANSIC), asctimeDateString);
XCTAssertEqualObjects(TNLHTTPDateToString(date, TNLHTTPDateFormatRFC822), RFC822DateString);
XCTAssertEqualObjects(TNLHTTPDateToString(date, TNLHTTPDateFormatRFC850), RFC850DateString);
XCTAssertEqualObjects(TNLHTTPDateToString(date, TNLHTTPDateFormatAuto), RFC822DateString);
XCTAssertEqualObjects(TNLHTTPDateToString(date, (TNLHTTPDateFormat)-1), RFC822DateString);
// Write invalid
XCTAssertNil(TNLHTTPDateToString(nil, TNLHTTPDateFormatAuto));
}
@end