public void TestReadPreference_SecondaryWithTwoTagSets()
{
var tagSets = new ReplicaSetTagSet[]
{
new ReplicaSetTagSet { { "dc", "ny" }, { "rack", "1" } },
new ReplicaSetTagSet { { "dc", "sf" } }
};
var readPreference = new ReadPreference { ReadPreferenceMode = ReadPreferenceMode.Secondary, TagSets = tagSets };
var built = new MongoUrlBuilder { Server = _localhost, ReadPreference = readPreference };
var connectionString = "mongodb://localhost/?readPreference=secondary;readPreferenceTags=dc:ny,rack:1;readPreferenceTags=dc:sf";
foreach (var builder in EnumerateBuiltAndParsedBuilders(built, connectionString))
{
Assert.AreEqual(ReadPreferenceMode.Secondary, builder.ReadPreference.ReadPreferenceMode);
var builderTagSets = builder.ReadPreference.TagSets.ToArray();
Assert.AreEqual(2, builderTagSets.Length);
var builderTagSet1Tags = builderTagSets[0].Tags.ToArray();
var builderTagSet2Tags = builderTagSets[1].Tags.ToArray();
Assert.AreEqual(2, builderTagSet1Tags.Length);
Assert.AreEqual(new ReplicaSetTag("dc", "ny"), builderTagSet1Tags[0]);
Assert.AreEqual(new ReplicaSetTag("rack", "1"), builderTagSet1Tags[1]);
Assert.AreEqual(1, builderTagSet2Tags.Length);
Assert.AreEqual(new ReplicaSetTag("dc", "sf"), builderTagSet2Tags[0]);
Assert.AreEqual(connectionString, builder.ToString());
}
}