1 // Copyright (c) 2020 650 Industries, Inc. All rights reserved. 2 3 import ExpoModulesTestCore 4 5 @testable import EXUpdates 6 7 class StringStringDictionarySerializerSpec : ExpoSpec { specnull8 override func spec() { 9 describe("serialization") { 10 it("validates") { 11 expect(try StringStringDictionarySerializer.serialize(dictionary: ["hello": "world"])) == "hello=\"world\"" 12 expect(try StringStringDictionarySerializer.serialize(dictionary: ["*hello": "world"])) == "*hello=\"world\"" 13 expect(try StringStringDictionarySerializer.serialize(dictionary: ["*_-.*": ""])) == "*_-.*=\"\"" 14 15 // escapes 16 expect(try StringStringDictionarySerializer.serialize(dictionary: ["test": "\\test\""])) == "test=\"\\\\test\\\"\"" 17 18 // empty key 19 expect { 20 try StringStringDictionarySerializer.serialize(dictionary: ["": "world"]) 21 }.to(throwError(SerializerError.emptyKey)) 22 23 // capital letter in key 24 expect { 25 try StringStringDictionarySerializer.serialize(dictionary: ["Hello": "world"]) 26 }.to(throwError(SerializerError.invalidCharacterInKey(key: "Hello", character: "H"))) 27 28 // capital letter in key 29 expect { 30 try StringStringDictionarySerializer.serialize(dictionary: ["Hello": "world"]) 31 }.to(throwError(SerializerError.invalidCharacterInKey(key: "Hello", character: "H"))) 32 33 // invalid character in key 34 expect { 35 try StringStringDictionarySerializer.serialize(dictionary: ["Hell&o": "world"]) 36 }.to(throwError(SerializerError.invalidCharacterInKey(key: "hell&o", character: "&"))) 37 } 38 } 39 } 40 } 41