satisfiesVersion returns true for versions up to maxWireVersion v36
ServerDescription desc; desc.maxWireVersion = WireVersion.v36; assert(desc.satisfiesVersion(WireVersion.old)); assert(desc.satisfiesVersion(WireVersion.v26)); assert(desc.satisfiesVersion(WireVersion.v30)); assert(desc.satisfiesVersion(WireVersion.v34)); assert(desc.satisfiesVersion(WireVersion.v36)); assert(!desc.satisfiesVersion(WireVersion.v40)); assert(!desc.satisfiesVersion(WireVersion.v44)); assert(!desc.satisfiesVersion(WireVersion.v60));
satisfiesVersion with maxWireVersion old only satisfies old
ServerDescription oldServer; oldServer.maxWireVersion = WireVersion.old; assert(oldServer.satisfiesVersion(WireVersion.old)); assert(!oldServer.satisfiesVersion(WireVersion.v26)); assert(!oldServer.satisfiesVersion(WireVersion.v30));
satisfiesVersion with maxWireVersion v60 satisfies all versions
ServerDescription latestServer; latestServer.maxWireVersion = WireVersion.v60; assert(latestServer.satisfiesVersion(WireVersion.old)); assert(latestServer.satisfiesVersion(WireVersion.v36)); assert(latestServer.satisfiesVersion(WireVersion.v44)); assert(latestServer.satisfiesVersion(WireVersion.v60));
Default-initialized ServerDescription has maxWireVersion 0 and unknown type
ServerDescription def; assert(def.maxWireVersion == 0); assert(def.type == ServerDescription.ServerType.unknown); assert(def.satisfiesVersion(WireVersion.old)); assert(!def.satisfiesVersion(WireVersion.v26));