public void Should_read_name_when_trie_holds_a_longer_version_of_the_name() { var trie = new BsonTrie<int>(); trie.Add("longer", 10); Assert(trie, "long"); }
public void Should_read_name_when_trie_knows_about_the_name() { var trie = new BsonTrie<int>(); trie.Add("known", 10); Assert(trie, "known"); }
public void Should_read_name_when_trie_does_not_know_about_the_name() { var trie = new BsonTrie<int>(); trie.Add("known", 10); Assert(trie, "different"); }
// constructors /// <summary> /// Initializes a new instance of the <see cref="SerializerHelper"/> class. /// </summary> /// <param name="members">The members.</param> public SerializerHelper(params Member[] members) { if (members == null) { throw new ArgumentNullException("members"); } if (members.Length > 64) { throw new ArgumentException("SerializerHelper supports a maximum of 64 members.", "members"); } _members = members; _trie = new BsonTrie <long>(); foreach (var member in members) { _allMemberFlags |= member.Flag; if (!member.IsOptional) { _requiredMemberFlags |= member.Flag; } if (member.ElementName == "*") { _extraMemberFlag = member.Flag; } else { _trie.Add(member.ElementName, member.Flag); } } }
// constructors /// <summary> /// Initializes a new instance of the <see cref="SerializerHelper"/> class. /// </summary> /// <param name="members">The members.</param> public SerializerHelper(params Member[] members) { if (members == null) { throw new ArgumentNullException("members"); } if (members.Length > 64) { throw new ArgumentException("SerializerHelper supports a maximum of 64 members.", "members"); } _members = members; _trie = new BsonTrie<long>(); foreach (var member in members) { _allMemberFlags |= member.Flag; if (!member.IsOptional) { _requiredMemberFlags |= member.Flag; } if (member.ElementName == "*") { _extraMemberFlag = member.Flag; } else { _trie.Add(member.ElementName, member.Flag); } } }
public void Should_read_name_when_trie_knows_about_the_name() { var trie = new BsonTrie <int>(); trie.Add("known", 10); Assert(trie, "known"); }
public void Should_read_name_when_trie_holds_a_longer_version_of_the_name() { var trie = new BsonTrie <int>(); trie.Add("longer", 10); Assert(trie, "long"); }
public void Should_read_name_when_trie_does_not_know_about_the_name() { var trie = new BsonTrie <int>(); trie.Add("known", 10); Assert(trie, "different"); }
// private static methods /// <summary> /// Builds the bson decoding trie. /// </summary> /// <returns>A BsonTrie.</returns> private static BsonTrie <bool> BuildBsonTrie() { var bsonTrie = new BsonTrie <bool>(); bsonTrie.Add("k", true); // is key bsonTrie.Add("v", false); return(bsonTrie); }
private void Assert(BsonTrie <int> trie, string name) { var subject = new TrieNameDecoder <int>(trie); using (var memoryStream = new MemoryStream()) using (var bsonStream = new BsonStreamAdapter(memoryStream)) { bsonStream.WriteCString(name); bsonStream.WriteInt32(20); bsonStream.Position = 0; var result = subject.Decode(bsonStream, Utf8Encodings.Strict); result.Should().Be(name); } }
private void Assert(BsonTrie<int> trie, string name) { var subject = new TrieNameDecoder<int>(trie); using (var memoryStream = new MemoryStream()) using (var bsonStream = new BsonStreamAdapter(memoryStream)) { bsonStream.WriteCString(name); bsonStream.WriteInt32(20); bsonStream.Position = 0; var result = subject.Decode(bsonStream, Utf8Encodings.Strict); result.Should().Be(name); } }
private void Assert(BsonTrie <int> trie, string name, bool found, int value) { // test multiple calls to the same TrieDecoder instance var subject = new TrieNameDecoder <int>(trie); // 1st pass: assert calling test's expectation Assert(name, subject, found, value); // 2rd pass: assert calling test's expectation once again Assert(name, subject, found, value); // 3rd pass: different value in stream --> assert "found: false" and "value: default" Assert("doesn't exist in trie", subject, false, default); // 4th pass: assert calling test's expectation once again Assert(name, subject, found, value); }