public void ParseNoNamespace() { var csdl = @"<Schema Namespace=""NS1""> <EntityContainer Name=""C1""> <EntitySet Name=""Customers"" EntityType=""NS1.Customer"" /> </EntityContainer> <EntityType Name=""Customer""> <Key> <PropertyRef Name=""CustomerID"" /> </Key> <Property Name=""CustomerID"" Type=""String"" Nullable=""false"" /> </EntityType> </Schema>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElementNoNamespace"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void EdmxRoundTripTestsInvalidConceptualModelNamespaceEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElementWrongNamespace" } }; this.EdmxCheckForErrors(EdmxModelBuilder.InvalidConceptualModelNamespaceEdmx(), errors); }
public void EdmxRoundTripTestsInvalidNamespaceAndVersionEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.InvalidVersionNumber, "EdmxParser_EdmxVersionMismatch" } }; this.EdmxCheckForErrors(EdmxModelBuilder.NonMatchingNamespaceAndVersionEdmx(), errors); }
public void EdmxRoundTripTwoRuntimeEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.UnexpectedXmlElement, "EdmxParser_BodyElement" } }; this.EdmxCheckForErrors(EdmxModelBuilder.TwoRuntimeEdmx(), errors); }
public void EdmxRoundTripTestsInvalidDataServicesEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElementNoNamespace" } }; this.EdmxCheckForErrors(EdmxModelBuilder.InvalidDataServicesEdmx(), errors); }
public void EdmxRoundTripTestsInvalidConceptualModelNamespaceEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElementWrongNamespace" } }; this.EdmxCheckForErrors(EdmxModelBuilder.InvalidConceptualModelNamespaceEdmx(), errors); }
public void EdmxRoundTripTestsInvalidNamespaceAndVersionEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.InvalidVersionNumber, "EdmxParser_EdmxVersionMismatch" } }; this.EdmxCheckForErrors(EdmxModelBuilder.NonMatchingNamespaceAndVersionEdmx(), errors); }
public void EdmxRoundTripTestsInvalidDataServicesEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElementNoNamespace" } }; this.EdmxCheckForErrors(EdmxModelBuilder.InvalidDataServicesEdmx(), errors); }
public void EdmxRoundTripTwoDataServicesEdmx() { var errors = new ExpectedEdmErrors() { { EdmErrorCode.UnexpectedXmlElement, "EdmxParser_BodyElement" } }; this.EdmxCheckForErrors(EdmxModelBuilder.TwoDataServicesEdmx(), errors); }
public void ParseEmptyFile() { var csdl = @""; XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Fragment; XmlReader foo = XmlReader.Create(new StringReader(csdl), settings); IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { foo }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.EmptyFile, "XmlParser_EmptyFile"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void ParseMissingTypeAttributeOrElementTest() { var csdl = @"<Schema Namespace=""DefaultNamespace"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <Action Name=""FunctionImportsWithReturnTypePrimitiveDataType1""><ReturnType Type=""Edm.Binary""/> <Parameter Name=""PrimitiveParameter1"" /> </Action> <EntityContainer Name=""MyContainer""> <ActionImport Name=""FunctionImportsWithReturnTypePrimitiveDataType1"" Action=""DefaultNamespace.FunctionImportsWithReturnTypePrimitiveDataType1"" /> </EntityContainer> </Schema>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.MissingType, "CsdlParser_MissingTypeAttributeOrElement"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void ParseIfExpressionTooFewOperands() { const string csdl = @"<?xml version=""1.0"" encoding=""utf-16""?> <Schema Namespace=""foo"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntityType Name=""Person""> <Key> <PropertyRef Name=""Name"" /> </Key> <Property Name=""Name"" Type=""Edm.String"" Nullable=""false"" /> <Property Name=""Birthday"" Type=""Edm.DateTimeOffset"" /> <Annotation Term=""Funk.RC""> <If> <Bool>true</Bool> <Int>123</Int> </If> </Annotation> </EntityType> </Schema>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.InvalidIfExpressionIncorrectNumberOfOperands, "CsdlParser_InvalidIfExpressionIncorrectNumberOfOperands"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void ParseUnexpectedElement_ValueAnnotation() { var csdl = @"<Schema Namespace=""NS1"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntityType Name=""Customer""> <Annotation Term=""foo.Person""> <PropertyValue Property=""foo"" String=""zippy"" /> </Annotation> </EntityType> </Schema>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnusedElement"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void EdmxParseUnexpectedAttribute() { var edmx = @"<?xml version=""1.0"" encoding=""utf-16""?> <edmx:Edmx Version=""4.0"" xmlns:edmx=""http://docs.oasis-open.org/odata/ns/edmx""> <edmx:DataServices> <Schema Namespace=""NS1"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntityContainer Name=""C1"" UNEXPECTED=""hello""> <EntitySet Name=""Customers"" EntityType=""NS1.Customer"" /> </EntityContainer> <EntityType Name=""Customer""> <Key> <PropertyRef Name=""CustomerID"" /> </Key> <Property Name=""CustomerID"" Type=""String"" Nullable=""false"" /> </EntityType> </Schema> </edmx:DataServices> </edmx:Edmx>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = EdmxReader.TryParse(XmlReader.Create(new StringReader(edmx)), out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.UnexpectedXmlAttribute, "XmlParser_UnexpectedAttribute"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void EntitySetRequiredAttributeWithEmptyText() { var csdl = @"<Schema Namespace=""NS1"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntityContainer Name=""C1""> <EntitySet Name="""" EntityType=""NS1.Customer"" > </EntitySet> </EntityContainer> <EntityType Name=""Customer""> <Key> <PropertyRef Name=""CustomerID"" /> </Key> <Property Name=""CustomerID"" Type=""String"" Nullable=""false"" /> </EntityType> </Schema>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsTrue(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void ParseUnexpectedText() { var csdl = @"<Schema Namespace=""NS1"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntityContainer Name=""C1""> <EntitySet Name=""Customers"" EntityType=""NS1.Customer"" > UNEXPECTED TEXT!!! </EntitySet> </EntityContainer> <EntityType Name=""Customer""> <Key> <PropertyRef Name=""CustomerID"" /> </Key> <Property Name=""CustomerID"" Type=""String"" Nullable=""false"" /> </EntityType> </Schema>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.TextNotAllowed, "XmlParser_TextNotAllowed"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void EdmxParseUnexpectedNamespace() { var edmx = @"<edmx:Edmx xmlns:edmx=""http://BorkBorkBork""/>"; XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Fragment; XmlReader foo = XmlReader.Create(new StringReader(edmx), settings); IEdmModel model; IEnumerable<EdmError> errors; bool parsed = EdmxReader.TryParse(foo, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElement"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }
public void ParseBadRootElement() { var csdl = //invalid root element for namespace @"<EntityContainer Name=""C1"" xmlns=""http://docs.oasis-open.org/odata/ns/edm""> <EntitySet Name=""Customers"" EntityType=""NS1.Customer"" /> </EntityContainer> <EntityType Name=""Customer""> <Key> <PropertyRef Name=""CustomerID"" /> </Key> <Property Name=""CustomerID"" Type=""String"" Nullable=""false"" /> </EntityType>"; IEdmModel model; IEnumerable<EdmError> errors; bool parsed = CsdlReader.TryParse(new XmlReader[] { XmlReader.Create(new StringReader(csdl)) }, out model, out errors); Assert.IsFalse(parsed, "parsed"); ExpectedEdmErrors expectedErrors = new ExpectedEdmErrors { {EdmErrorCode.UnexpectedXmlElement, "XmlParser_UnexpectedRootElement"}, }; ValidationVerificationHelper.Verify(expectedErrors, errors); }