public void KindPropertyReturnsTypeCastEnumMember()
        {
            // Arrange & Act
            var segment = new ODataTypeCastSegment(_person);

            // Assert
            Assert.Equal(ODataSegmentKind.TypeCast, segment.Kind);
        }
        public void GetPathItemNameReturnsCorrectTypeCastLiteral()
        {
            // Arrange & Act
            var segment = new ODataTypeCastSegment(_person);

            // Assert
            Assert.Equal("NS.Person", segment.GetPathItemName(new OpenApiConvertSettings()));
        }
Beispiel #3
0
        public void TypeCastSegmentEntityTypePropertyReturnsSameEntityType()
        {
            // Arrange & Act
            var segment = new ODataTypeCastSegment(_person);

            // Assert
            Assert.Same(_person, segment.EntityType);
        }
Beispiel #4
0
        /// <inheritdoc/>
        protected override void SetBasicInfo(OpenApiOperation operation)
        {
            // Summary
            operation.Summary = "Invoke " + (EdmOperation.IsAction() ? "action " : "function ") + EdmOperation.Name;

            // OperationId
            if (Context.Settings.EnableOperationId)
            {
                StringBuilder operationId = new StringBuilder(NavigationSource.Name);
                if (HasTypeCast)
                {
                    ODataTypeCastSegment typeCast = Path.Segments.FirstOrDefault(s => s is ODataTypeCastSegment) as ODataTypeCastSegment;
                    operationId.Append(".");
                    operationId.Append(typeCast.EntityType.Name);
                }
                else
                {
                    operationId.Append(".");
                    operationId.Append(NavigationSource.EntityType().Name);
                }

                operationId.Append(".");
                operationId.Append(EdmOperation.Name);
                if (EdmOperation.IsAction())
                {
                    operation.OperationId = operationId.ToString();
                }
                else
                {
                    ODataOperationSegment operationSegment = Path.LastSegment as ODataOperationSegment;
                    string pathItemName = operationSegment.GetPathItemName(Context.Settings);
                    string md5          = pathItemName.GetHashMd5();
                    operation.OperationId = operationId.Append(".").Append(md5.Substring(8)).ToString();
                }
            }

            base.SetBasicInfo(operation);
        }