diff --git a/driver-core/src/main/com/mongodb/client/model/vault/RewrapManyDataKeyOptions.java b/driver-core/src/main/com/mongodb/client/model/vault/RewrapManyDataKeyOptions.java index e941694d1e7..da0279a8f8e 100644 --- a/driver-core/src/main/com/mongodb/client/model/vault/RewrapManyDataKeyOptions.java +++ b/driver-core/src/main/com/mongodb/client/model/vault/RewrapManyDataKeyOptions.java @@ -33,6 +33,11 @@ public final class RewrapManyDataKeyOptions { private String provider; private BsonDocument masterKey; + /** + * Construct a new instance + */ + public RewrapManyDataKeyOptions() { + } /** * Sets the provider name diff --git a/driver-scala/src/main/scala/org/mongodb/scala/model/vault/package.scala b/driver-scala/src/main/scala/org/mongodb/scala/model/vault/package.scala index faf193ff000..34cdf93ce69 100644 --- a/driver-scala/src/main/scala/org/mongodb/scala/model/vault/package.scala +++ b/driver-scala/src/main/scala/org/mongodb/scala/model/vault/package.scala @@ -16,10 +16,11 @@ package org.mongodb.scala.model -import com.mongodb.annotations.{ Beta, Reason } import com.mongodb.client.model.vault.{ DataKeyOptions => JDataKeyOptions } import com.mongodb.client.model.vault.{ EncryptOptions => JEncryptOptions } import com.mongodb.client.model.vault.{ RangeOptions => JRangeOptions } +import com.mongodb.client.model.vault.{ RewrapManyDataKeyResult => JRewrapManyDataKeyResult } +import com.mongodb.client.model.vault.{ RewrapManyDataKeyOptions => JRewrapManyDataKeyOptions } /** * This package contains options classes for the key vault API @@ -65,4 +66,28 @@ package object vault { def apply(): RangeOptions = new JRangeOptions() } + /** + * The result of the rewrapping of data keys + * + * @since 5.6 + */ + type RewrapManyDataKeyResult = JRewrapManyDataKeyResult + + /** + * The result of the rewrapping of data keys + * + * @since 5.6 + */ + type RewrapManyDataKeyOptions = JRewrapManyDataKeyOptions + + /** + * The rewrap many data key options + * + * The `getMasterKey` document MUST have the fields corresponding to the given provider as specified in masterKey. + * + * @since 5.6 + */ + object RewrapManyDataKeyOptions { + def apply() = new JRewrapManyDataKeyOptions() + } } diff --git a/driver-scala/src/main/scala/org/mongodb/scala/vault/ClientEncryption.scala b/driver-scala/src/main/scala/org/mongodb/scala/vault/ClientEncryption.scala index 4b6d9486d32..a881b4eafb1 100644 --- a/driver-scala/src/main/scala/org/mongodb/scala/vault/ClientEncryption.scala +++ b/driver-scala/src/main/scala/org/mongodb/scala/vault/ClientEncryption.scala @@ -22,8 +22,15 @@ import com.mongodb.client.model.{ CreateCollectionOptions, CreateEncryptedCollec import java.io.Closeable import com.mongodb.reactivestreams.client.vault.{ ClientEncryption => JClientEncryption } import org.bson.{ BsonBinary, BsonDocument, BsonValue } -import org.mongodb.scala.{ Document, MongoDatabase, SingleObservable, ToSingleObservablePublisher } -import org.mongodb.scala.model.vault.{ DataKeyOptions, EncryptOptions } +import org.mongodb.scala.bson.conversions.Bson +import org.mongodb.scala.{ Document, FindObservable, MongoDatabase, SingleObservable, ToSingleObservablePublisher } +import org.mongodb.scala.model.vault.{ + DataKeyOptions, + EncryptOptions, + RewrapManyDataKeyOptions, + RewrapManyDataKeyResult +} +import org.mongodb.scala.result.DeleteResult /** * The Key vault. @@ -40,7 +47,7 @@ case class ClientEncryption(private val wrapped: JClientEncryption) extends Clos * Creates a new key document and inserts into the key vault collection. * * @param kmsProvider the KMS provider - * @return a Publisher containing the identifier for the created data key + * @return an Observable containing the identifier for the created data key */ def createDataKey(kmsProvider: String): SingleObservable[BsonBinary] = createDataKey(kmsProvider, DataKeyOptions()) @@ -51,7 +58,7 @@ case class ClientEncryption(private val wrapped: JClientEncryption) extends Clos * * @param kmsProvider the KMS provider * @param dataKeyOptions the options for data key creation - * @return a Publisher containing the identifier for the created data key + * @return an Observable containing the identifier for the created data key */ def createDataKey(kmsProvider: String, dataKeyOptions: DataKeyOptions): SingleObservable[BsonBinary] = wrapped.createDataKey(kmsProvider, dataKeyOptions) @@ -62,7 +69,7 @@ case class ClientEncryption(private val wrapped: JClientEncryption) extends Clos * * @param value the value to encrypt * @param options the options for data encryption - * @return a Publisher containing the encrypted value, a BSON binary of subtype 6 + * @return an Observable containing the encrypted value, a BSON binary of subtype 6 */ def encrypt(value: BsonValue, options: EncryptOptions): SingleObservable[BsonBinary] = wrapped.encrypt(value, options) @@ -86,7 +93,7 @@ case class ClientEncryption(private val wrapped: JClientEncryption) extends Clos * @note Requires MongoDB 8.0 or greater * @param expression the Match Expression or Aggregate Expression * @param options the options - * @return a Publisher containing the queryable encrypted range expression + * @return an Observable containing the queryable encrypted range expression * @since 4.9 */ def encryptExpression( @@ -99,10 +106,87 @@ case class ClientEncryption(private val wrapped: JClientEncryption) extends Clos * Decrypt the given value. * * @param value the value to decrypt, which must be of subtype 6 - * @return a Publisher containing the decrypted value + * @return an Observable containing the decrypted value */ def decrypt(value: BsonBinary): SingleObservable[BsonValue] = wrapped.decrypt(value) + /** + * Finds a single key document with the given UUID (BSON binary subtype 0x04). + * + * @param id the data key UUID (BSON binary subtype 0x04) + * @return an Observable containing the single key document or an empty publisher if there is no match + * @since 5.6 + */ + def getKey(id: BsonBinary): SingleObservable[BsonDocument] = wrapped.getKey(id) + + /** + * Returns a key document in the key vault collection with the given keyAltName. + * + * @param keyAltName the alternative key name + * @return an Observable containing the matching key document or an empty publisher if there is no match + * @since 5.6 + */ + def getKeyByAltName(keyAltName: String): SingleObservable[BsonDocument] = wrapped.getKeyByAltName(keyAltName) + + /** + * Finds all documents in the key vault collection. + * + * @return a find Observable for the documents in the key vault collection + * @since 5.6 + */ + def keys: FindObservable[BsonDocument] = FindObservable(wrapped.getKeys) + + /** + * Adds a keyAltName to the keyAltNames array of the key document in the key vault collection with the given UUID. + * + * @param id the data key UUID (BSON binary subtype 0x04) + * @param keyAltName the alternative key name to add to the keyAltNames array + * @return an Observable containing the previous version of the key document or an empty publisher if no match + * @since 5.6 + */ + def addKeyAltName(id: BsonBinary, keyAltName: String): SingleObservable[BsonDocument] = + wrapped.addKeyAltName(id, keyAltName) + + /** + * Removes the key document with the given data key from the key vault collection. + * + * @param id the data key UUID (BSON binary subtype 0x04) + * @return an Observable containing the delete result + * @since 5.6 + */ + def deleteKey(id: BsonBinary): SingleObservable[DeleteResult] = wrapped.deleteKey(id) + + /** + * Removes a keyAltName from the keyAltNames array of the key document in the key vault collection with the given id. + * + * @param id the data key UUID (BSON binary subtype 0x04) + * @param keyAltName the alternative key name + * @return an Observable containing the previous version of the key document or an empty publisher if there is no match + * @since 5.6 + */ + def removeKeyAltName(id: BsonBinary, keyAltName: String): SingleObservable[BsonDocument] = + wrapped.removeKeyAltName(id, keyAltName) + + /** + * Decrypts multiple data keys and (re-)encrypts them with the current masterKey. + * + * @param filter the filter + * @return an Observable containing the result + * @since 5.6 + */ + def rewrapManyDataKey(filter: Bson): SingleObservable[RewrapManyDataKeyResult] = wrapped.rewrapManyDataKey(filter) + + /** + * Decrypts multiple data keys and (re-)encrypts them with a new masterKey, or with their current masterKey if a new one is not given. + * + * @param filter the filter + * @param options the options + * @return an Observable containing the result + * @since 5.6 + */ + def rewrapManyDataKey(filter: Bson, options: RewrapManyDataKeyOptions): SingleObservable[RewrapManyDataKeyResult] = + wrapped.rewrapManyDataKey(filter, options) + /** * Create a new collection with encrypted fields, * automatically creating @@ -115,7 +199,7 @@ case class ClientEncryption(private val wrapped: JClientEncryption) extends Clos * @param collectionName The name for the collection to create. * @param createCollectionOptions Options for creating the collection. * @param createEncryptedCollectionParams Auxiliary parameters for creating an encrypted collection. - * @return A publisher of the (potentially updated) `encryptedFields` configuration that was used to create the collection. + * @return An Observable of the (potentially updated) `encryptedFields` configuration that was used to create the collection. * A user may use this document to configure `com.mongodb.AutoEncryptionSettings.getEncryptedFieldsMap`. * * Produces MongoUpdatedEncryptedFieldsException` if an exception happens after creating at least one data key. diff --git a/driver-scala/src/test/scala/org/mongodb/scala/AggregateObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/AggregateObservableSpec.scala index b0edcb68b8e..bd30396ac28 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/AggregateObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/AggregateObservableSpec.scala @@ -34,7 +34,7 @@ class AggregateObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/ChangeStreamObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/ChangeStreamObservableSpec.scala index 03c745d0ae6..bcc4bfea815 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/ChangeStreamObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/ChangeStreamObservableSpec.scala @@ -40,7 +40,7 @@ class ChangeStreamObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/DistinctObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/DistinctObservableSpec.scala index e55455579b4..60f4f271f09 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/DistinctObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/DistinctObservableSpec.scala @@ -33,7 +33,7 @@ class DistinctObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/FindObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/FindObservableSpec.scala index eaf117a1348..570978012ae 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/FindObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/FindObservableSpec.scala @@ -36,7 +36,7 @@ class FindObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionNamesObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionNamesObservableSpec.scala index 3acd02a3397..5a89cbf5760 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionNamesObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionNamesObservableSpec.scala @@ -33,7 +33,7 @@ class ListCollectionNamesObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionsObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionsObservableSpec.scala index 20990f68b58..141dd62013a 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionsObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/ListCollectionsObservableSpec.scala @@ -34,7 +34,7 @@ class ListCollectionsObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/ListDatabasesObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/ListDatabasesObservableSpec.scala index a80b421af85..385bbf4e306 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/ListDatabasesObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/ListDatabasesObservableSpec.scala @@ -33,7 +33,7 @@ class ListDatabasesObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/ListIndexesObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/ListIndexesObservableSpec.scala index da841fe6656..6d8a60a1e92 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/ListIndexesObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/ListIndexesObservableSpec.scala @@ -33,7 +33,7 @@ class ListIndexesObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/MapReduceObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/MapReduceObservableSpec.scala index af08a0f0452..7c99804d329 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/MapReduceObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/MapReduceObservableSpec.scala @@ -34,7 +34,7 @@ class MapReduceObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/MongoClientSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/MongoClientSpec.scala index ca5b4f8734e..762ec19d1c6 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/MongoClientSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/MongoClientSpec.scala @@ -37,7 +37,7 @@ class MongoClientSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/MongoCollectionSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/MongoCollectionSpec.scala index 1f942a418e8..5d91d8e9202 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/MongoCollectionSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/MongoCollectionSpec.scala @@ -44,7 +44,7 @@ class MongoCollectionSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/MongoCredentialSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/MongoCredentialSpec.scala index e1d2ccf7017..5c4d228f2df 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/MongoCredentialSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/MongoCredentialSpec.scala @@ -26,7 +26,7 @@ class MongoCredentialSpec extends BaseSpec { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/MongoDatabaseSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/MongoDatabaseSpec.scala index 928dd354680..1e48aed6204 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/MongoDatabaseSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/MongoDatabaseSpec.scala @@ -42,7 +42,7 @@ class MongoDatabaseSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSBucketSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSBucketSpec.scala index afd28ad7dc6..4a00157cad1 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSBucketSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSBucketSpec.scala @@ -36,7 +36,7 @@ class GridFSBucketSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get").replace("Publisher", "Observable") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSDownloadObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSDownloadObservableSpec.scala index f98e10b75d2..4d02b6290f6 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSDownloadObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSDownloadObservableSpec.scala @@ -31,7 +31,7 @@ class GridFSDownloadObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSFindObservableSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSFindObservableSpec.scala index c311d224b04..521f7ac7dca 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSFindObservableSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSFindObservableSpec.scala @@ -37,7 +37,7 @@ class GridFSFindObservableSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSUploadPublisherSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSUploadPublisherSpec.scala index 21c6e2fa5e3..b60b77709d8 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSUploadPublisherSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/gridfs/GridFSUploadPublisherSpec.scala @@ -31,7 +31,7 @@ class GridFSUploadPublisherSpec extends BaseSpec with MockitoSugar { wrapped.foreach((name: String) => { val cleanedName = name.stripPrefix("get") - assert(local.contains(name) | local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") }) } diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/AggregatesSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/AggregatesSpec.scala index 25152a22d97..70ac84065e0 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/AggregatesSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/AggregatesSpec.scala @@ -52,7 +52,7 @@ class AggregatesSpec extends BaseSpec { "Aggregates" should "have the same methods as the wrapped Aggregates" in { val wrapped = classOf[com.mongodb.client.model.Aggregates].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val aliases = Set("filter") @@ -66,7 +66,7 @@ class AggregatesSpec extends BaseSpec { it should "have the same methods as the wrapped Accumulators" in { val wrapped = classOf[com.mongodb.client.model.Accumulators].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = Accumulators.getClass.getDeclaredMethods.filter(f => isPublic(f.getModifiers)).map(_.getName).toSet diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/FiltersSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/FiltersSpec.scala index 52a7b4254c1..e05aa2447e1 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/FiltersSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/FiltersSpec.scala @@ -32,7 +32,7 @@ class FiltersSpec extends BaseSpec { "Filters" should "have the same methods as the wrapped Filters" in { val wrapped = classOf[com.mongodb.client.model.Filters].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val aliases = Set("equal", "notEqual", "bsonType") diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/GeoJsonSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/GeoJsonSpec.scala index f878908fe0f..fec2e0a0413 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/GeoJsonSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/GeoJsonSpec.scala @@ -28,7 +28,7 @@ class GeoJsonSpec extends BaseSpec { it should "have the same methods as the wrapped CoordinateReferenceSystemType" in { val wrapped = classOf[geojson.CoordinateReferenceSystemType].getDeclaredFields - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = CoordinateReferenceSystemType.getClass.getDeclaredMethods @@ -41,7 +41,7 @@ class GeoJsonSpec extends BaseSpec { it should "have the same methods as the wrapped GeoJsonObjectType" in { val wrapped = classOf[geojson.GeoJsonObjectType].getDeclaredFields - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = GeoJsonObjectType.getClass.getDeclaredMethods.filter(f => isPublic(f.getModifiers)).map(_.getName).toSet diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/IndexesSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/IndexesSpec.scala index 10a9eb0a6b6..2ca3e588e19 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/IndexesSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/IndexesSpec.scala @@ -32,7 +32,7 @@ class IndexesSpec extends BaseSpec { "Indexes" should "have the same methods as the wrapped Updates" in { val wrapped = classOf[com.mongodb.client.model.Indexes].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = model.Indexes.getClass.getDeclaredMethods.filter(f => isPublic(f.getModifiers)).map(_.getName).toSet diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/ProjectionsSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/ProjectionsSpec.scala index 87f6b978e9f..aacfc572420 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/ProjectionsSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/ProjectionsSpec.scala @@ -31,7 +31,7 @@ class ProjectionsSpec extends BaseSpec { "Projections" should "have the same methods as the wrapped Projections" in { val wrapped = classOf[com.mongodb.client.model.Projections].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = model.Projections.getClass.getDeclaredMethods.filter(f => isPublic(f.getModifiers)).map(_.getName).toSet diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/SortsSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/SortsSpec.scala index 7adfbf09af2..de81bc6c53d 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/SortsSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/SortsSpec.scala @@ -32,7 +32,7 @@ class SortsSpec extends BaseSpec { "Sorts" should "have the same methods as the wrapped Sorts" in { val wrapped = classOf[com.mongodb.client.model.Sorts].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = model.Sorts.getClass.getDeclaredMethods.filter(f => isPublic(f.getModifiers)).map(_.getName).toSet diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/UpdatesSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/UpdatesSpec.scala index 1a6ba29d6d9..ee27de2b1a7 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/UpdatesSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/UpdatesSpec.scala @@ -32,7 +32,7 @@ class UpdatesSpec extends BaseSpec { "Updates" should "have the same methods as the wrapped Updates" in { val wrapped = classOf[com.mongodb.client.model.Updates].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) + .filter(f => isPublic(f.getModifiers)) .map(_.getName) .toSet val local = model.Updates.getClass.getDeclaredMethods.filter(f => isPublic(f.getModifiers)).map(_.getName).toSet diff --git a/driver-scala/src/test/scala/org/mongodb/scala/model/vault/ClientEncryptionSpec.scala b/driver-scala/src/test/scala/org/mongodb/scala/model/vault/ClientEncryptionSpec.scala index 682d60207b4..a31dc5823d5 100644 --- a/driver-scala/src/test/scala/org/mongodb/scala/model/vault/ClientEncryptionSpec.scala +++ b/driver-scala/src/test/scala/org/mongodb/scala/model/vault/ClientEncryptionSpec.scala @@ -36,17 +36,13 @@ class ClientEncryptionSpec extends BaseSpec with MockitoSugar { val clientEncryption = ClientEncryption(wrapped) "ClientEncryption" should "have the same methods as the wrapped Filters" in { - val wrapped = classOf[JClientEncryption].getDeclaredMethods - .filter(f => isStatic(f.getModifiers) && isPublic(f.getModifiers)) - .map(_.getName) - .toSet - val ignore = Set("toString", "apply", "unapply") - val local = ClientEncryption.getClass.getDeclaredMethods - .filter(f => isPublic(f.getModifiers)) - .map(_.getName) - .toSet -- ignore - - local should equal(wrapped) + val wrapped = classOf[JClientEncryption].getDeclaredMethods.map(_.getName).toSet + val local = classOf[ClientEncryption].getDeclaredMethods.map(_.getName).toSet + + wrapped.foreach((name: String) => { + val cleanedName = name.stripPrefix("get") + assert(local.contains(name) || local.contains(cleanedName.head.toLower + cleanedName.tail), s"Missing: $name") + }) } it should "call createDataKey" in {