public void GetCookieValue_Single_Success() {
			string expected = "somecookievalue";
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithCookie( expected );
			string cookieValue = httpRequestMessage.GetCookieValue();
			Assert.AreEqual( expected, cookieValue );
		}
		public void GetCookieValue_Many_NoneMatching_ExpectNull() {
			string headerValue = CookieHeaderMaker.MakeCookieHeader(
				new Tuple<string, string>( "first", "value1" ),
				new Tuple<string, string>( "second", "value2" )
				);
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithCookieHeader( headerValue );
			Assert.IsNull( httpRequestMessage.GetCookieValue() );
		}
		Task<ID2LPrincipal> IRequestAuthenticator.AuthenticateAsync(
			HttpRequestMessage request,
			AuthenticationMode authMode
		) {
			string cookie = request.GetCookieValue();
			string bearerToken = request.GetBearerTokenValue();
			string xsrfToken = request.GetXsrfValue();

			return AuthenticateHelper( cookie, xsrfToken, bearerToken, authMode );
		}
		public void GetCookieValue_Many_LastMatches_Success() {
			string expected = "goodcookievalue";
			string headerValue = CookieHeaderMaker.MakeCookieHeader(
				new Tuple<string, string>( "first", "value1" ),
				new Tuple<string, string>( "second", "value2" ),
				new Tuple<string, string>( RequestValidationConstants.D2L_AUTH_COOKIE_NAME, expected )
				);
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithCookieHeader( headerValue );
			Assert.AreEqual( expected, httpRequestMessage.GetCookieValue() );
		}
		public void GetCookieValue_NullHeader_ExpectNull() {
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithCookieHeader( null );
			Assert.IsNull( httpRequestMessage.GetCookieValue() );
		}
		public void GetCookieValue_EmptyHeader_ExpectNull() {
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithCookieHeader( string.Empty );
			Assert.IsNull( httpRequestMessage.GetCookieValue() );
		}
		public void GetCookieValue_Single_NotMatching_ExpectNull() {
			HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
				.WithCookie( "somecookiename", "somevalue" );
			Assert.IsNull( httpRequestMessage.GetCookieValue() );
		}
		public void GetCookieValue_NoCookies_ExpectNull() {
			HttpRequestMessage request = new HttpRequestMessage();
			request.Headers.Add( RequestValidationConstants.Headers.COOKIE, new string[] { } );
			Assert.IsNull( request.GetCookieValue() );
		}