< Summary

Class:Microsoft.Azure.Search.Models.FacetResult
Assembly:Microsoft.Azure.Search.Data
File(s):C:\Git\azure-sdk-for-net\sdk\search\Microsoft.Azure.Search.Data\src\Customizations\Documents\Models\FacetResult.Customization.cs
C:\Git\azure-sdk-for-net\sdk\search\Microsoft.Azure.Search.Data\src\Generated\Models\FacetResult.cs
Covered lines:20
Uncovered lines:4
Coverable lines:24
Total lines:162
Line coverage:83.3% (20 of 24)
Covered branches:5
Total branches:8
Branch coverage:62.5% (5 of 8)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor(...)-100%100%
get_Type()-100%100%
get_From()-100%100%
get_To()-100%100%
get_Value()-100%100%
AsRangeFacetResult()-66.67%50%
AsValueFacetResult()-66.67%50%
GetValueOrNull(...)-100%50%
.ctor()-0%100%
.ctor(...)-100%100%
get_AdditionalProperties()-100%100%
get_Count()-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\search\Microsoft.Azure.Search.Data\src\Customizations\Documents\Models\FacetResult.Customization.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License. See License.txt in the project root for
 3// license information.
 4
 5namespace Microsoft.Azure.Search.Models
 6{
 7    using System;
 8    using System.Collections.Generic;
 9
 10    public partial class FacetResult
 11    {
 12        private const string FromKey = "from";
 13        private const string ToKey = "to";
 14        private const string ValueKey = "value";
 15
 16        /// <summary>
 17        /// Initializes a new instance of the FacetResult class. This constructor is intended to be used for test purpos
 18        /// properties of this class are immutable.
 19        /// </summary>
 20        /// <param name="from">A value indicating the inclusive lower bound of the facet's range, or null to indicate th
 21        /// lower bound (i.e. -- for the first bucket).</param>
 22        /// <param name="to">A value indicating the exclusive upper bound of the facet's range, or null to indicate that
 23        /// upper bound (i.e. -- for the last bucket).</param>
 24        /// <param name="value">The value of the facet, or the inclusive lower bound if it's an interval facet.</param>
 25        /// <param name="count">The approximate count of documents falling within the bucket described by this facet.</p
 13226        public FacetResult(object from, object to, object value, long? count) : this(new Dictionary<string, object>(), c
 27        {
 13228            AdditionalProperties[FromKey] = from;
 13229            AdditionalProperties[ToKey] = to;
 13230            AdditionalProperties[ValueKey] = value;
 13231        }
 32
 33        /// <summary>
 34        /// Gets a value indicating the type of this facet.
 35        /// </summary>
 13236        public FacetType Type => (Value != null) ? FacetType.Value : FacetType.Range;
 37
 38        /// <summary>
 39        /// Gets a value indicating the inclusive lower bound of the facet's range, or null to indicate that there is
 40        /// no lower bound (i.e. -- for the first bucket).
 41        /// </summary>
 2442        public object From => GetValueOrNull(FromKey);
 43
 44        /// <summary>
 45        /// Gets a value indicating the exclusive upper bound of the facet's range, or null to indicate that there is
 46        /// no upper bound (i.e. -- for the last bucket).
 47        /// </summary>
 2448        public object To => GetValueOrNull(ToKey);
 49
 50        /// <summary>
 51        /// Gets the value of the facet, or the inclusive lower bound if it's an interval facet.
 52        /// </summary>
 24053        public object Value => GetValueOrNull(ValueKey);
 54
 55        /// <summary>
 56        /// Attempts to convert the facet to a range facet of the given type.
 57        /// </summary>
 58        /// <typeparam name="T">
 59        /// A type that matches the type of the field to which the facet was applied. Valid types include
 60        /// <c cref="System.DateTimeOffset">DateTimeOffset</c>, <c cref="System.Double">Double</c>, and
 61        /// <c cref="System.Int64">Int64</c> (long in C#, int64 in F#).
 62        /// </typeparam>
 63        /// <returns>A new strongly-typed range facet instance.</returns>
 64        /// <exception cref="InvalidCastException">This instance is not a range facet of the given type.</exception>
 65        public RangeFacetResult<T> AsRangeFacetResult<T>() where T : struct
 66        {
 2467            if (Type != FacetType.Range)
 68            {
 069                throw new InvalidCastException();
 70            }
 71
 2472            return new RangeFacetResult<T>(Count.GetValueOrDefault(), (T?)From, (T?)To);
 73        }
 74
 75        /// <summary>
 76        /// Attempts to convert the facet to a value facet of the given type.
 77        /// </summary>
 78        /// <typeparam name="T">
 79        /// A type that matches the type of the field to which the facet was applied.
 80        /// </typeparam>
 81        /// <returns>A new strongly-typed value facet instance.</returns>
 82        /// <exception cref="InvalidCastException">This instance is not a value facet of the given type.</exception>
 83        public ValueFacetResult<T> AsValueFacetResult<T>()
 84        {
 10885            if (Type != FacetType.Value)
 86            {
 087                throw new InvalidCastException();
 88            }
 89
 10890            return new ValueFacetResult<T>(Count.GetValueOrDefault(), (T)Value);
 91        }
 92
 28893        private object GetValueOrNull(string key) => AdditionalProperties.TryGetValue(key, out object value) ? value : n
 94    }
 95}

C:\Git\azure-sdk-for-net\sdk\search\Microsoft.Azure.Search.Data\src\Generated\Models\FacetResult.cs

#LineLine coverage
 1// <auto-generated>
 2// Copyright (c) Microsoft Corporation. All rights reserved.
 3// Licensed under the MIT License. See License.txt in the project root for
 4// license information.
 5//
 6// Code generated by Microsoft (R) AutoRest Code Generator.
 7// Changes may cause incorrect behavior and will be lost if the code is
 8// regenerated.
 9// </auto-generated>
 10
 11namespace Microsoft.Azure.Search.Models
 12{
 13    using Newtonsoft.Json;
 14    using System.Collections;
 15    using System.Collections.Generic;
 16    using System.Linq;
 17
 18    /// <summary>
 19    /// A single bucket of a facet query result. Reports the number of
 20    /// documents with a field value falling within a particular range or
 21    /// having a particular value or interval.
 22    /// </summary>
 23    public partial class FacetResult
 24    {
 25        /// <summary>
 26        /// Initializes a new instance of the FacetResult class.
 27        /// </summary>
 028        internal FacetResult()
 29        {
 30            CustomInit();
 031        }
 32
 33        /// <summary>
 34        /// Initializes a new instance of the FacetResult class.
 35        /// </summary>
 36        /// <param name="additionalProperties">Unmatched properties from the
 37        /// message are deserialized this collection</param>
 38        /// <param name="count">The approximate count of documents falling
 39        /// within the bucket described by this facet.</param>
 13240        internal FacetResult(IDictionary<string, object> additionalProperties = default(IDictionary<string, object>), lo
 41        {
 13242            AdditionalProperties = additionalProperties;
 13243            Count = count;
 44            CustomInit();
 13245        }
 46
 47        /// <summary>
 48        /// An initialization method that performs custom operations like setting defaults
 49        /// </summary>
 50        partial void CustomInit();
 51
 52        /// <summary>
 53        /// Gets or sets unmatched properties from the message are deserialized
 54        /// this collection
 55        /// </summary>
 56        [JsonExtensionData]
 81657        internal IDictionary<string, object> AdditionalProperties { get; set; }
 58
 59        /// <summary>
 60        /// Gets the approximate count of documents falling within the bucket
 61        /// described by this facet.
 62        /// </summary>
 63        [JsonProperty(PropertyName = "count")]
 26464        public long? Count { get; private set; }
 65
 66    }
 67}