diff --git a/Sources/MongoSwift/ReadConcern.swift b/Sources/MongoSwift/ReadConcern.swift index 564d8f2da..72c24af28 100644 --- a/Sources/MongoSwift/ReadConcern.swift +++ b/Sources/MongoSwift/ReadConcern.swift @@ -83,15 +83,6 @@ public struct ReadConcern: Codable { self.level = nil } - /// Initializes a new `ReadConcern` from a `Document`. - public init(_ doc: Document) { - if let level = doc["level"]?.stringValue { - self.init(level) - } else { - self.init() - } - } - /** * Creates a new `mongoc_read_concern_t` based on this `ReadConcern` and passes it to the provided closure. * The pointer is only valid within the body of the closure and will be freed after the body completes. diff --git a/Tests/MongoSwiftTests/ReadWriteConcernTests.swift b/Tests/MongoSwiftTests/ReadWriteConcernTests.swift index ca316a107..a3ad878fe 100644 --- a/Tests/MongoSwiftTests/ReadWriteConcernTests.swift +++ b/Tests/MongoSwiftTests/ReadWriteConcernTests.swift @@ -103,7 +103,7 @@ final class ReadWriteConcernTests: MongoSwiftTestCase { expect(rc2.isDefault).to(beTrue()) // test init from doc - let rc3 = ReadConcern(["level": "majority"]) + let rc3 = try BSONDecoder().decode(ReadConcern.self, from: ["level": "majority"]) expect(rc3.level).to(equal(.majority)) // test string init @@ -586,7 +586,7 @@ final class ReadWriteConcernTests: MongoSwiftTestCase { if valid { let client = try MongoClient(uri) if let readConcern = test["readConcern"]?.documentValue { - let rc = ReadConcern(readConcern) + let rc = try BSONDecoder().decode(ReadConcern.self, from: readConcern) if rc.isDefault { expect(client.readConcern).to(beNil()) } else { @@ -620,7 +620,7 @@ final class ReadWriteConcernTests: MongoSwiftTestCase { for test in tests { let valid: Bool = try test.get("valid") if let rcToUse = test["readConcern"]?.documentValue { - let rc = ReadConcern(rcToUse) + let rc = try BSONDecoder().decode(ReadConcern.self, from: rcToUse) let isDefault: Bool = try test.get("isServerDefault") expect(rc.isDefault).to(equal(isDefault))