public static ServiceVersion Combine(ServiceVersion a, ServiceVersion b) { if (a == null) { return b; } if (b == null) { return a; } if (a.Version > b.Version) { return a; } return b; }
private static bool IsValidScenario(TestWebRequest request, ODataProtocolVersion protocolVersion, ServiceVersions versions, ServiceVersion requestDSV, ServiceVersion requestMDSV, Exception exception) { // figure out the default values of the version if they are null if (requestDSV == null && requestMDSV != null) { requestDSV = requestMDSV.Version > 20 ? requestMDSV : new ServiceVersion(40); } if (exception != null) { Assert.AreEqual(400, request.ResponseStatusCode, "Expecting bad request"); List<string> expectedErrorMessages = new List<string>(); if (requestDSV != null && requestDSV.Version < versions.MinRequestDSV.Version) { expectedErrorMessages.Add(DataServicesResourceUtil.GetString("DataService_DSVTooLow", requestDSV.ToString(), versions.MinRequestDSV.Version / 10, versions.MinRequestDSV.Version % 10)); } if (requestMDSV != null && requestMDSV.Version < versions.MinRequestMDSV.Version) { expectedErrorMessages.Add(DataServicesResourceUtil.GetString("DataService_MaxDSVTooLow", requestMDSV.ToString(), versions.MinRequestMDSV.Version / 10, versions.MinRequestMDSV.Version % 10)); } // Since enableRelationshipLinks is true, the response will be 3.0 if the MPV is set to 3.0. For V1/V2 servers, this setting is ignored if (protocolVersion == ODataProtocolVersion.V4 && requestMDSV != null && requestMDSV.ToProtocolVersion() < protocolVersion) { expectedErrorMessages.Add(DataServicesResourceUtil.GetString("DataService_MaxDSVTooLow", requestMDSV.ToString(), 4, 0)); } if (expectedErrorMessages.Count != 0) { Assert.IsTrue(expectedErrorMessages.Contains(exception.InnerException.Message), "Didn't find the expected error message"); } else { Assert.Fail("Exception not expected, but exception was thrown"); } return false; } Assert.IsTrue(requestDSV == null || requestDSV.Version >= versions.MinRequestDSV.Version, "Request DSV should be equal or greater than the min required DSV"); Assert.IsTrue(requestMDSV == null || requestMDSV.Version >= versions.MinRequestMDSV.Version, "Request MDSV should be equal or greater than the min required MDSV"); return true; }
public static void SetMetadataVersion(this ServiceContextDescription serviceDescription, ServiceVersion metadataVersion) { serviceDescription.SetAnnotation(MetadataVersionName, metadataVersion); }
public bool AreRequestVersionsValid(ServiceVersion DSV, ServiceVersion MDSV) { if (DSV != null && DSV.Version < this.MinRequestDSV.Version) { return false; } // If DSV is null and MDSV is specified, then DSV takes the MDSV value for 2.0 or above. // Otherwise the DSV values is set to 2.0 if (DSV == null && MDSV != null) { int version = (MDSV.Version >= 20) ? MDSV.Version : 20; if (version < this.MinRequestDSV.Version) { return false; } } if (MDSV != null && MDSV.Version < this.MinRequestMDSV.Version) { return false; } return true; }
public ServiceVersions(ServiceVersions source) { if (source != null) { this.MinRequestDSV = source.MinRequestDSV; this.MinRequestMDSV = source.MinRequestMDSV; this.ResponseDSV = source.ResponseDSV; } }
public ServiceVersions() { this.MinRequestDSV = 40; this.MinRequestMDSV = 40; this.ResponseDSV = 40; }