ios/SpectrumKit/SpectrumKitTests/FSPAbsoluteToOriginCropRequirementTests.mm (52 lines of code) (raw):
// Copyright (c) Facebook, Inc. and its affiliates.
//
// This source code is licensed under the MIT license found in the
// LICENSE file in the root directory of this source tree.
#import <XCTest/XCTest.h>
#import <SpectrumKit/FSPAbsoluteToOriginCropRequirement.h>
#import <SpectrumKit/FSPCropRequirementProviding_Private.h>
#include <spectrum/requirements/CropAbsoluteToOrigin.h>
using namespace facebook::spectrum;
@interface FSPAbsoluteToOriginCropRequirementTests : XCTestCase
@end
@implementation FSPAbsoluteToOriginCropRequirementTests
static FSPAbsoluteToOriginCropRequirementValues kDefaultTestValues = {.left = 1, .top = 2, .right = 3, .bottom = 4};
- (void)testConformsToInternalCropRequirementProvidingProtocol
{
const auto object = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues];
XCTAssertTrue([object conformsToProtocol:@protocol(FSPCropRequirementProviding_Private)]);
}
- (void)testInternalTypeConversion
{
const auto object = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues
enforcement:FSPCropRequirementEnforcementApproximate];
const auto internalObject = [(id<FSPCropRequirementProviding_Private>)object makeInternalCropRequirement];
const auto expectedInternalObject = requirements::CropAbsoluteToOrigin({
.left = 1, .top = 2, .right = 3, .bottom = 4
}, false);
XCTAssertTrue(internalObject == expectedInternalObject);
}
- (void)testEnforcement
{
const auto object = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues
enforcement:FSPCropRequirementEnforcementApproximate];
XCTAssertEqual(object.enforcement, FSPCropRequirementEnforcementApproximate);
}
#pragma mark - Equality
- (void)testIsEqual
{
const auto object = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues];
const auto object2 = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues];
XCTAssertEqualObjects(object, object2);
}
- (void)testIsNotEqualOnDifferentSize
{
const auto object = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues];
const auto object2 = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:{.right = 2, .bottom = 1}];
XCTAssertNotEqualObjects(object, object2);
}
- (void)testIsNotEqualOnDifferentEnforcement
{
const auto object = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues
enforcement:FSPCropRequirementEnforcementMustBeExact];
const auto object2 = [FSPAbsoluteToOriginCropRequirement absoluteToOriginCropRequirementWithValues:kDefaultTestValues
enforcement:FSPCropRequirementEnforcementApproximate];
XCTAssertNotEqualObjects(object, object2);
}
@end