public void EnsureStorageContextEquivalenceViaCreateSafe(
            string contextStringIn, bool?setMute, sc contextObjectIn,
            string contextStringOut, sc contextObjectOut)
        {
            sc sc1 = null;

            if (contextStringIn != null)
            {
                try
                {
                    sc1 = sc.CreateSafe(contextStringIn, setMute);
                }
                catch (Exception e)
                {
                    e.ShouldBeNull($"CreateSafe shouldn't get an exception, got {e.Message}");
                }

                if (contextStringOut != null)
                {
                    // confirm result via string.
                    var sc1Str = sc1.ClientRequestID;
                    contextStringOut.ShouldNotBeNullOrWhiteSpace();
                    sc1Str.ShouldNotBeNullOrWhiteSpace();
                    sc1Str.ShouldBe(contextStringOut);
                }

                if (contextObjectOut != null)
                {
                    // confirm result via object.
                    AreEquivalent(contextObjectOut, sc1, out string reason).ShouldBeTrue(reason);
                }
            }

            if (contextObjectIn != null)
            {
                sc1 = contextObjectIn;

                if (contextStringOut != null)
                {
                    // confirm result via string.
                    var sc1Str = sc1.ClientRequestID;
                    contextStringOut.ShouldNotBeNull();
                    contextStringOut.ShouldBe(sc1Str);
                }

                if (contextObjectOut != null)
                {
                    // confirm result via object.
                    contextObjectOut.ShouldBeEquivalentTo(sc1);
                    AreEquivalent(contextObjectOut, sc1, out string failedBecause).ShouldBeTrue(failedBecause);
                }
            }
        }
        public void EnsureStorageContextEquivalenceViaStringInits(
            string contextStringIn, bool?setMute, sc contextObjectIn,
            string contextStringOut, sc contextObjectOut,
            Type exceptionTypeExpected)
        {
            sc sc1 = null;
            sc scImplicitMuting = null;

            if (contextStringIn != null)
            {
                bool gotException = false;
                try
                {
                    sc1 = new sc(contextStringIn, setMute);
                    scImplicitMuting = new sc(contextStringIn, null);
                }
                catch (Exception e)
                {
                    e.ShouldBeOfType(exceptionTypeExpected);
                    gotException = true;
                }
                if (exceptionTypeExpected != null)
                {
                    gotException.ShouldBeTrue($"Should have gotten exception for: '{contextStringIn}'");
                }

                if (contextStringOut != null)
                {
                    // confirm result via string.
                    var sc1Str = sc1.ClientRequestID;
                    contextStringOut.ShouldNotBeNullOrWhiteSpace();
                    sc1Str.ShouldNotBeNullOrWhiteSpace();
                    sc1Str.ShouldBe(contextStringOut);
                }

                if (contextObjectOut != null)
                {
                    // confirm result via object.
                    contextObjectOut.ShouldBeEquivalentTo(sc1);
                    AreEquivalent(contextObjectOut, sc1, out string reason).ShouldBeTrue(reason);
                }
            }

            if (contextObjectIn != null)
            {
                sc1 = contextObjectIn;

                if (contextStringOut != null)
                {
                    // confirm result via string.
                    var sc1Str = sc1.ClientRequestID;
                    contextStringOut.ShouldNotBeNull();
                    contextStringOut.ShouldBe(sc1Str);
                }

                if (contextObjectOut != null)
                {
                    // confirm result via object.
                    contextObjectOut.ShouldBeEquivalentTo(sc1);
                    AreEquivalent(contextObjectOut, sc1, out string failedBecause).ShouldBeTrue(failedBecause);
                }
            }
        }