@@ -20,10 +20,13 @@ import com.mongodb.AutoEncryptionSettings
20
20
import com.mongodb.ClientEncryptionSettings
21
21
import com.mongodb.MongoClientException
22
22
import com.mongodb.MongoNamespace
23
+ import com.mongodb.WriteConcern
23
24
import com.mongodb.client.model.vault.DataKeyOptions
24
25
import com.mongodb.client.model.vault.EncryptOptions
25
26
import com.mongodb.client.vault.ClientEncryption
26
27
import com.mongodb.client.vault.ClientEncryptions
28
+ import com.mongodb.event.CommandStartedEvent
29
+ import com.mongodb.internal.connection.TestCommandListener
27
30
import org.bson.BsonBinarySubType
28
31
import org.bson.BsonDocument
29
32
import org.bson.BsonString
@@ -32,7 +35,6 @@ import static com.mongodb.ClusterFixture.isNotAtLeastJava8
32
35
import static com.mongodb.ClusterFixture.serverVersionAtLeast
33
36
import static com.mongodb.client.Fixture.getDefaultDatabaseName
34
37
import static com.mongodb.client.Fixture.getMongoClient
35
- import static com.mongodb.client.Fixture.getMongoClientSettings
36
38
import static com.mongodb.client.Fixture.getMongoClientSettingsBuilder
37
39
import static com.mongodb.client.model.Filters.eq
38
40
import static java.util.Collections.singletonMap
@@ -53,6 +55,7 @@ class ClientSideEncryptionProseTestSpecification extends FunctionalSpecification
53
55
private MongoClient autoEncryptingClient
54
56
private ClientEncryption clientEncryption
55
57
private MongoCollection<BsonDocument > autoEncryptingDataCollection
58
+ private TestCommandListener commandListener
56
59
57
60
def setup () {
58
61
assumeFalse(isNotAtLeastJava8())
@@ -95,8 +98,11 @@ class ClientSideEncryptionProseTestSpecification extends FunctionalSpecification
95
98
autoEncryptingDataCollection = autoEncryptingClient. getDatabase(autoEncryptingCollectionNamespace. databaseName)
96
99
.getCollection(autoEncryptingCollectionNamespace. collectionName, BsonDocument )
97
100
101
+ commandListener = new TestCommandListener ()
98
102
clientEncryption = ClientEncryptions . create(ClientEncryptionSettings . builder()
99
- .keyVaultMongoClientSettings(getMongoClientSettings())
103
+ .keyVaultMongoClientSettings(getMongoClientSettingsBuilder()
104
+ .addCommandListener(commandListener)
105
+ .build())
100
106
.keyVaultNamespace(keyVaultNamespace. fullName)
101
107
.kmsProviders(providerProperties)
102
108
.build())
@@ -107,6 +113,11 @@ class ClientSideEncryptionProseTestSpecification extends FunctionalSpecification
107
113
def localDataKeyId = clientEncryption. createDataKey(' local' , new DataKeyOptions (). keyAltNames([' local_altname' ]))
108
114
109
115
then :
116
+ commandListener. getCommandStartedEvents(). size() == 1
117
+ def event = commandListener. getCommandStartedEvents(). get(0 ) as CommandStartedEvent
118
+ event. getCommand(). containsKey(' writeConcern' )
119
+ event. getCommand(). getDocument(' writeConcern' ) == WriteConcern . MAJORITY . asDocument()
120
+
110
121
localDataKeyId != null
111
122
localDataKeyId. type == BsonBinarySubType . UUID_STANDARD . value
112
123
dataKeyCollection. find(eq(' masterKey.provider' , ' local' )). into([]). size() == 1
0 commit comments