public void RegisterSerializer_RegisterDifferentSerializerTwoTimesForSameType_ThrowsException()
        {
            // Arrange
            var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions);
            var originalSerializer   = new DuplicateRegisteredSerializer();
            var differentSerializer  = new DifferentRegisteredSerializer();

            mongoDatabaseBuilder.RegisterSerializer <DuplicateType>(originalSerializer);
            mongoDatabaseBuilder.RegisterSerializer <DuplicateType>(differentSerializer);

            // Act
            Action registerSerializers = () => mongoDatabaseBuilder.Build();

            // Assert
            Assert.Throws <BsonSerializationException>(registerSerializers);
        }
        public void RegisterSerializer_RegisterSameSerializerTwoTimesForSameType_SerializerRegisteredOnce()
        {
            // Arrange
            var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions);
            var firstSerializer      = new DuplicateRegisteredSerializer();
            var secondSerializer     = new DuplicateRegisteredSerializer();

            mongoDatabaseBuilder.RegisterSerializer <DuplicateType>(firstSerializer);
            mongoDatabaseBuilder.RegisterSerializer <DuplicateType>(secondSerializer);

            // Act
            mongoDatabaseBuilder.Build();

            // Assert
            IBsonSerializer <DuplicateType> registeredSerializer =
                BsonSerializer.LookupSerializer <DuplicateType>();

            Assert.True(registeredSerializer is DuplicateRegisteredSerializer);
        }