YapDatabase/Testing/UnitTesting/TestYapDatabaseQuery.m
George Cox 5701e64c60 Adds support for NSArray parameters to YapDatabaseQuery
Example:
[YapDatabaseQuery queryWithFormat:@"WHERE col IN (?)", anArray];

- Adds unit tests for YapDatabaseQuery
- Adds new unit test for YapDatabaseSecondaryIndex since it makes use of YapDatabaseQuery

Addresses issue #119
2014-10-06 23:28:49 -04:00

46 lines
2.3 KiB
Objective-C

#import <XCTest/XCTest.h>
#import "YapDatabaseQuery.h"
@interface TestYapDatabaseQuery : XCTestCase
@end
@implementation TestYapDatabaseQuery
- (void)test1
{
YapDatabaseQuery *query = [YapDatabaseQuery queryWithFormat:@"WHERE col > 5"];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col > 5"], @"Incorrect queryString");
query = [YapDatabaseQuery queryWithFormat:@"WHERE col > ?", @(5)];
NSArray *expectedArguments = @[@(5)];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col > ?"], @"Incorrect queryString");
XCTAssertTrue([query.queryParameters isEqualToArray:@[@(5)]], @"Incorrect queryParameters");
query = [YapDatabaseQuery queryWithFormat:@"WHERE col > ? AND col < ?", @(1), @(5)];
expectedArguments = @[@(1), @(5)];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col > ? AND col < ?"], @"Incorrect queryString");
XCTAssertTrue([query.queryParameters isEqualToArray:expectedArguments], @"Incorrect queryParameters");
query = [YapDatabaseQuery queryWithFormat:@"WHERE col > ? AND col < ?", @(1), @(5)];
expectedArguments = @[@(1), @(5)];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col > ? AND col < ?"], @"Incorrect queryString");
XCTAssertTrue([query.queryParameters isEqualToArray:expectedArguments], @"Incorrect queryParameters");
query = [YapDatabaseQuery queryWithFormat:@"WHERE col IN (?)", @[@(1), @(5)]];
expectedArguments = @[@(1), @(5)];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col IN (?,?)"], @"Incorrect queryString");
XCTAssertTrue([query.queryParameters isEqualToArray:expectedArguments], @"Incorrect queryParameters");
query = [YapDatabaseQuery queryWithFormat:@"WHERE col IN (?) AND col2 <> ?", @[@(1), @(5)], @"test"];
expectedArguments = @[@(1), @(5), @"test"];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col IN (?,?) AND col2 <> ?"], @"Incorrect queryString");
XCTAssertTrue([query.queryParameters isEqualToArray:expectedArguments], @"Incorrect queryParameters");
query = [YapDatabaseQuery queryWithFormat:@"WHERE col2 <> ? AND col IN (?)", @"test", @[@(1), @(5)]];
expectedArguments = @[@"test", @(1), @(5)];
XCTAssertTrue([query.queryString isEqualToString:@"WHERE col2 <> ? AND col IN (?,?)"], @"Incorrect queryString");
XCTAssertTrue([query.queryParameters isEqualToArray:expectedArguments], @"Incorrect queryParameters");
}
@end