示例#1
0
        public void GetAuthToken_WhenGivenValidCredentials_ShouldGetAnAuthTokenFromSessionsEndpoint()
        {
            // ARRANGE
            var stubApi     = Substitute.For <IAPI>();
            var stubLazyApi = new Lazy <IAPI>(() => stubApi);
            var credentials = new Credentials()
            {
                BaseUrl  = "https://some.bank.or.cu/api",
                Username = "******",
                Password = "******",
                Facility = "validFacility"
            };

            var header = new Header()
            {
                ContentType = "application/json"
            };

            var session = new Session()
            {
                UserName       = credentials.Username,
                Password       = credentials.Password,
                Authentication = "CCM"
            };

            var sessionResponse = new SessionResponse()
            {
                AuthToken = "abc123"
            };

            stubLazyApi.Value.URL = $"{credentials.BaseUrl}/v1/ccmservice/sessions";

            stubLazyApi.Value.Post <Session, SessionResponse>(session).Returns(sessionResponse);

            var mockProxy = new RestProxy(stubLazyApi, credentials);

            // ACT
            var authToken = mockProxy.GetAuthToken(session);

            // ASSERT
            Assert.IsNotEmpty(authToken);
            Assert.AreEqual(sessionResponse.AuthToken, authToken);
        }