diff --git a/Tests/FigmaExportCoreTests/Extensions/StringCaseTests.swift b/Tests/FigmaExportCoreTests/Extensions/StringCaseTests.swift new file mode 100644 index 00000000..430a76f3 --- /dev/null +++ b/Tests/FigmaExportCoreTests/Extensions/StringCaseTests.swift @@ -0,0 +1,34 @@ +import XCTest +@testable import FigmaExportCore + +final class StringCaseTests: XCTestCase { + + func testSnakeCase() throws { + XCTAssertTrue("snake".isSnakeCase) + XCTAssertTrue("snake_case".isSnakeCase) + XCTAssertTrue("snake_case_example".isSnakeCase) + XCTAssertFalse("not_a_SNAKECASE_String".isSnakeCase) + XCTAssertFalse("notSnakeCase".isSnakeCase) + XCTAssertFalse("AlsoNotSnakeCase".isSnakeCase) + + XCTAssertEqual("snake".snakeCased(), "snake") + XCTAssertEqual("snake cased".snakeCased(), "snake_cased") + XCTAssertEqual("snakeCased".snakeCased(), "snake_cased") + XCTAssertEqual("snake Cased_String".snakeCased(), "snake_cased_string") + XCTAssertEqual("_this is* not-Very%difficult".snakeCased(), "this_is_not_very_difficult") + } + + func testLowerCamelCase() throws { + XCTAssertTrue("lower".isLowerCamelCase) + XCTAssertTrue("lowerCamelCase".isLowerCamelCase) + XCTAssertFalse("lowerCamelCase_with_underscore".isLowerCamelCase) + XCTAssertFalse("UpperCamelCase".isLowerCamelCase) + XCTAssertFalse("snake_case".isLowerCamelCase) + + XCTAssertEqual("lower".lowerCamelCased(), "lower") + XCTAssertEqual("LowerCamelCased".lowerCamelCased(), "lowerCamelCased") + XCTAssertEqual("lower_camel_cased".lowerCamelCased(), "lowerCamelCased") + XCTAssertEqual("Lower Camel cased".lowerCamelCased(), "lowerCamelCased") + XCTAssertEqual("_this is* not-Very%difficult".lowerCamelCased(), "thisIsNotVeryDifficult") + } +}