public void BsonKeyValueNode_clears_stored_value()
        {
            // ARRANGE

            var node = new BsonKeyValueNode <int>(this.nodes, new BsonDocument());

            this.nodes.Insert(node.BsonDocument);
            node.SetValue(1);

            // ACT

            var result = node.RemoveValue();

            // ASSERT

            Assert.True(result);
            Assert.False(node.TryGetValue(out var value));

            // check db: removes uses update which doesn

            var nodeDoc = this.nodes.FindAll().Single();

            Assert.True(nodeDoc.TryGetValue("_id", out var nodeDocId));
            Assert.False(nodeDoc.TryGetValue("key", out var nodeDocKey));
            Assert.False(nodeDoc.TryGetValue("value", out var valueBson));
        }
        public void BsonKeyValueNode_clears_unset_value()
        {
            // ARRANGE

            var node = new BsonKeyValueNode <int>(this.nodes, new BsonDocument());

            // ACT

            var result = node.RemoveValue();

            // ASSERT

            Assert.False(result);
            Assert.False(node.TryGetValue(out var value));
        }