コード例 #1
0
ファイル: VersioningUtil.cs プロジェクト: larsenjo/odata.net
 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;
 }
コード例 #2
0
        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;
        }
コード例 #3
0
ファイル: VersioningUtil.cs プロジェクト: larsenjo/odata.net
 public static void SetMetadataVersion(this ServiceContextDescription serviceDescription, ServiceVersion metadataVersion)
 { serviceDescription.SetAnnotation(MetadataVersionName, metadataVersion); }
コード例 #4
0
ファイル: VersioningUtil.cs プロジェクト: larsenjo/odata.net
        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;
        }
コード例 #5
0
ファイル: VersioningUtil.cs プロジェクト: larsenjo/odata.net
 public ServiceVersions(ServiceVersions source)
 {
     if (source != null)
     {
         this.MinRequestDSV = source.MinRequestDSV;
         this.MinRequestMDSV = source.MinRequestMDSV;
         this.ResponseDSV = source.ResponseDSV;
     }
 }
コード例 #6
0
ファイル: VersioningUtil.cs プロジェクト: larsenjo/odata.net
 public ServiceVersions()
 {
     this.MinRequestDSV = 40;
     this.MinRequestMDSV = 40;
     this.ResponseDSV = 40;
 }