public void SetUp()
 {
     this.Utility      = new Utility();
     this.Parser       = new ClaimsTransformationParser();
     this.Cache        = new ClaimsTransformationCache();
     this.ClaimFactory = new ClaimFactory();
     this.Engine       = new ClaimsTransformationEngine(this.Parser, this.Cache, this.ClaimFactory);
 }
 public void RedeemHttpClaimToken()
 {
     using (var tokenStream = ClaimFactory.CreateCheck("http://nothing/that/exists.xml").AsStream())
     {
         MessageMock.Object.BodyPart.Data = tokenStream;
         // fails, and still, shows that resources can be redeemed from somewhere else than the claim store
         Invoking(() => ClaimStore.Instance.Redeem(MessageMock.Object, ResourceTrackerMock.Object))
         .Should().Throw <WebException>();
     }
 }
 public void RedeemClaimTokenThrowsWhenUnexpectedToken()
 {
     using (var tokenStream = ClaimFactory.CreateCheckIn("d59cd2ea045744f4a085b18be678e4f0").AsStream())
     {
         MessageMock.Object.BodyPart.Data = tokenStream;
         Invoking(() => ClaimStore.Instance.Redeem(MessageMock.Object, ResourceTrackerMock.Object))
         .Should().Throw <InvalidOperationException>()
         .WithMessage("Invalid token message, CheckIn token is not expected to be redeemed.");
     }
 }
示例#4
0
        public void CreateClaimExecute_NewPolicyId_InsertedClaimHasSameStatus()
        {
            // Arrange
            var interactor = CreateClaimInteractorFactory.Create();
            var newClaim   = ClaimFactory.Create();

            // Run
            var result = interactor.Execute(newClaim.PolicyId, newClaim.StatusId);

            // Assert
            result.StatusId.ShouldBe(newClaim.StatusId);
        }
        public void UpdateStatus_NewClaimIdAndStatusId_UpdatedClaimHasNewStatusId()
        {
            // Arrange
            var          interactor    = UpdateClaimInteractorFactory.Create();
            ClaimEntity  claimToUpdate = ClaimFactory.Create();
            StatusEntity newStatus     = StatusFactory.Create("Closed");

            // Run
            var result = interactor.UpdateStatus(claimToUpdate, newStatus);

            // Assert
            result.StatusId.ShouldBe(newStatus.Id);
        }
示例#6
0
        public void AsMessageBodyCaptureDescriptor()
        {
            const string expected       = "claim";
            var          originalStream = ClaimFactory.CreateCheckOut(expected).AsStream();
            var          part           = new Mock <IBaseMessagePart>();

            part.Setup(p => p.GetOriginalDataStream())
            .Returns(originalStream);

            var descriptor = part.Object.AsMessageBodyCaptureDescriptor();

            descriptor.Data.Should().Be(expected);
        }
        public void ClaimMessageBody()
        {
            using (var configurationReaderMockInjectionScope = new SsoConfigurationReaderMockInjectionScope())
            {
                configurationReaderMockInjectionScope.Mock
                .Setup(ssr => ssr.Read(ClaimStoreSsoSettings.AFFILIATE_APPLICATION_NAME, nameof(ClaimStoreSsoSettings.ClaimStoreCheckInDirectory)))
                .Returns(Path.GetTempPath());
                configurationReaderMockInjectionScope.Mock
                .Setup(ssr => ssr.Read(ClaimStoreSsoSettings.AFFILIATE_APPLICATION_NAME, nameof(ClaimStoreSsoSettings.ClaimStoreCheckOutDirectory)))
                .Returns(@"\\server\share");

                using (var contentStream = TextStreamDummy.Create(1024 * 1024))
                    using (var trackingStream = new TrackingStream(contentStream))
                    {
                        MessageMock.Object.BodyPart.Data = trackingStream;

                        ClaimStore.Instance.SetupMessageBodyCapture(trackingStream, ActivityTrackingModes.Claim, null);
                        ClaimStore.Instance.Claim(MessageMock.Object, ResourceTrackerMock.Object);

                        // message's actual body stream has been exhausted (i.e. saved to disk)
                        contentStream.Position.Should().Be(contentStream.Length);

                        // message's body stream is replaced by a token message
                        using (var reader = new StreamReader(MessageMock.Object.BodyPart.Data))
                        {
                            reader.ReadToEnd().Should().Be(ClaimFactory.CreateCheckIn(trackingStream.CaptureDescriptor.Data).OuterXml);
                        }

                        // MessageType of token message is promoted in message context
                        var schemaMetadata = SchemaMetadata.For <Claim.CheckIn>();
                        MessageMock.Verify(m => m.Promote(BtsProperties.MessageType, schemaMetadata.MessageType), Times.Once());
                        MessageMock.Verify(m => m.Promote(BtsProperties.SchemaStrongName, schemaMetadata.DocumentSpec.DocSpecStrongName), Times.Once());

                        // payload is claimed to disk and file extension is .chk
                        var captureDescriptor = trackingStream.CaptureDescriptor;
                        captureDescriptor.CaptureMode.Should().Be(MessageBodyCaptureMode.Claimed);
                        captureDescriptor.Data.Should().StartWith(DateTime.Today.ToString(@"yyyyMMdd\\"));
                        File.Exists(Path.Combine(Path.GetTempPath(), captureDescriptor.Data.Replace("\\", "") + ".chk")).Should().BeTrue();
                    }
            }
        }
        public void RedeemClaimToken()
        {
            const string content = "dummy";
            const string url     = "cca95baa39ab4e25a3c54971ea170911";

            using (var file = File.CreateText(Path.Combine(Path.GetTempPath(), url)))
            {
                file.Write(content);
            }

            using (var configurationReaderMockInjectionScope = new SsoConfigurationReaderMockInjectionScope())
            {
                configurationReaderMockInjectionScope.Mock
                .Setup(ssr => ssr.Read(ClaimStoreSsoSettings.AFFILIATE_APPLICATION_NAME, nameof(ClaimStoreSsoSettings.ClaimStoreCheckInDirectory)))
                .Returns(Path.GetTempPath());
                configurationReaderMockInjectionScope.Mock
                .Setup(ssr => ssr.Read(ClaimStoreSsoSettings.AFFILIATE_APPLICATION_NAME, nameof(ClaimStoreSsoSettings.ClaimStoreCheckOutDirectory)))
                .Returns(Path.GetTempPath());

                using (var tokenStream = ClaimFactory.CreateCheck(url).AsStream())
                {
                    MessageMock.Object.BodyPart.Data = tokenStream;

                    ClaimStore.Instance.Redeem(MessageMock.Object, ResourceTrackerMock.Object);

                    MessageMock.Object.BodyPart.Data.Should().BeOfType <TrackingStream>();
                    var captureDescriptor = ((TrackingStream)MessageMock.Object.BodyPart.Data).CaptureDescriptor;
                    captureDescriptor.CaptureMode.Should().Be(MessageBodyCaptureMode.Claimed);
                    // previously captured payload is reused and not captured/claimed anew
                    captureDescriptor.Data.Should().Be(url);
                }

                using (var reader = new StreamReader(MessageMock.Object.BodyPart.Data))
                {
                    reader.ReadToEnd().Should().Be(content);
                }
            }
        }
示例#9
0
 // Creates a Claim from a TClaim object (duck typing).
 //
 // The TClaim must have the following shape:
 // class TClaim {
 //   string ClaimType { get; } // or just 'Type'
 //   string Value { get; }
 // }
 internal static Claim Create <TClaim>(TClaim claim)
 {
     return(ClaimFactory <TClaim> .Create(claim));
 }
示例#10
0
        // Creates a Claim from a TClaim object (duck typing).
        //
        // The TClaim must have the following shape:
        // class TClaim {
        //   string ClaimType { get; } // or just 'Type'
        //   string Value { get; }
        // }

        internal static Claim Create <TClaim>(TClaim claim) =>
        ClaimFactory <TClaim> .Create(claim);
示例#11
0
 public static Task AddClaimAsync(this UserManager <IdentityUser, int> userManager, int userId, Enum claimType, Enum value)
 {
     return(userManager.AddClaimAsync(userId, ClaimFactory.Create(claimType, value)));
 }