// Copyright (c) 2020 650 Industries, Inc. All rights reserved. import ExpoModulesTestCore @testable import EXUpdates class StringStringDictionarySerializerSpec : ExpoSpec { override func spec() { describe("serialization") { it("validates") { expect(try StringStringDictionarySerializer.serialize(dictionary: ["hello": "world"])) == "hello=\"world\"" expect(try StringStringDictionarySerializer.serialize(dictionary: ["*hello": "world"])) == "*hello=\"world\"" expect(try StringStringDictionarySerializer.serialize(dictionary: ["*_-.*": ""])) == "*_-.*=\"\"" // escapes expect(try StringStringDictionarySerializer.serialize(dictionary: ["test": "\\test\""])) == "test=\"\\\\test\\\"\"" // empty key expect { try StringStringDictionarySerializer.serialize(dictionary: ["": "world"]) }.to(throwError(SerializerError.emptyKey)) // capital letter in key expect { try StringStringDictionarySerializer.serialize(dictionary: ["Hello": "world"]) }.to(throwError(SerializerError.invalidCharacterInKey(key: "Hello", character: "H"))) // capital letter in key expect { try StringStringDictionarySerializer.serialize(dictionary: ["Hello": "world"]) }.to(throwError(SerializerError.invalidCharacterInKey(key: "Hello", character: "H"))) // invalid character in key expect { try StringStringDictionarySerializer.serialize(dictionary: ["Hell&o": "world"]) }.to(throwError(SerializerError.invalidCharacterInKey(key: "hell&o", character: "&"))) } } } }