Exemple #1
0
        public void TranslateODataPathTemplate_ThrowsArgumentNull_Path()
        {
            // Arrange
            DefaultODataTemplateTranslator translator = new DefaultODataTemplateTranslator();

            // Act & Assert
            ExceptionAssert.ThrowsArgumentNull(() => translator.Translate(null, null), "path");
        }
Exemple #2
0
        public void TranslateODataPathTemplate_ThrowsArgumentNull_Context()
        {
            // Arrange
            DefaultODataTemplateTranslator translator = new DefaultODataTemplateTranslator();
            ODataPathTemplate template = new ODataPathTemplate();

            // Act & Assert
            ExceptionAssert.ThrowsArgumentNull(() => translator.Translate(template, null), "context");
        }
Exemple #3
0
        public void TranslateODataPathTemplate_ReturnsNull()
        {
            // Arrange
            DefaultODataTemplateTranslator translator = new DefaultODataTemplateTranslator();
            ODataPathTemplate             path        = new ODataPathTemplate(new MySegmentTemplate());
            ODataTemplateTranslateContext context     = new ODataTemplateTranslateContext();

            // Act & Assert
            Assert.Null(translator.Translate(path, context));
        }
Exemple #4
0
        public void TranslateODataPathTemplate_ToODataPath()
        {
            // Assert
            EdmEntityType customer = new EdmEntityType("NS", "Customer");

            customer.AddKeys(customer.AddStructuralProperty("CustomerId", EdmPrimitiveTypeKind.Int32));
            EdmEntityContainer container = new EdmEntityContainer("NS", "Default");
            var      entitySet           = container.AddEntitySet("Customers", customer);
            EdmModel model = new EdmModel();

            model.AddElement(customer);
            model.AddElement(container);

            ODataPathTemplate template = new ODataPathTemplate(
                new EntitySetSegmentTemplate(entitySet),
                KeySegmentTemplate.CreateKeySegment(customer, entitySet));

            DefaultODataTemplateTranslator translator = new DefaultODataTemplateTranslator();
            ODataTemplateTranslateContext  context    = new ODataTemplateTranslateContext
            {
                RouteValues = new RouteValueDictionary(new { key = "42" }),
                Model       = model
            };

            // Act
            ODataPath path = translator.Translate(template, context);

            // Assert
            Assert.NotNull(path);
            Assert.Equal(2, path.Count);
            EntitySetSegment entitySetSegment = Assert.IsType <EntitySetSegment>(path.FirstSegment);

            Assert.Equal("Customers", entitySetSegment.EntitySet.Name);

            KeySegment keySegment             = Assert.IsType <KeySegment>(path.LastSegment);
            KeyValuePair <string, object> key = Assert.Single(keySegment.Keys);

            Assert.Equal("CustomerId", key.Key);
            Assert.Equal(42, key.Value);
        }