< Summary

Information
Class: IceRpc.Slice.ServiceAddressSliceDecoderExtensions
Assembly: IceRpc.Slice
File(s): /home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc.Slice/ServiceAddressSliceDecoderExtensions.cs
Tag: 1321_24790053727
Line coverage
75%
Covered lines: 9
Uncovered lines: 3
Coverable lines: 12
Total lines: 33
Line coverage: 75%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage
100%
Covered methods: 1
Fully covered methods: 0
Total methods: 1
Method coverage: 100%
Full method coverage: 0%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
DecodeServiceAddress(...)100%2275%

File(s)

/home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc.Slice/ServiceAddressSliceDecoderExtensions.cs

#LineLine coverage
 1// Copyright (c) ZeroC, Inc.
 2
 3using ZeroC.Slice.Codec;
 4
 5namespace IceRpc.Slice;
 6
 7/// <summary>Provides extension methods for <see cref="SliceDecoder" /> to decode service addresses.</summary>
 8public static class ServiceAddressSliceDecoderExtensions
 9{
 10    /// <summary>Decodes a service address.</summary>
 11    /// <param name="decoder">The Slice decoder.</param>
 12    /// <returns>The decoded service address.</returns>
 13    public static ServiceAddress DecodeServiceAddress(this ref SliceDecoder decoder)
 2314    {
 2315        string serviceAddressString = decoder.DecodeString();
 16        try
 2317        {
 2318            if (serviceAddressString.StartsWith('/'))
 319            {
 20                // relative service address
 321                return new ServiceAddress { Path = serviceAddressString };
 22            }
 23            else
 2024            {
 2025                return new ServiceAddress(new Uri(serviceAddressString, UriKind.Absolute));
 26            }
 27        }
 028        catch (Exception exception)
 029        {
 030            throw new InvalidDataException("Received an invalid service address.", exception);
 31        }
 2332    }
 33}