public void Initialise()
        {
            this.container = new UnityContainer();
            ObjectFactory.Instance = new ObjectFactory(this.container);

            this.container.RegisterType<IMessageService, MessageService>();
            IConfigurationManager icm = MockRepository.GenerateStub<IConfigurationManager>();
            icm.Stub(m => m.AppSettings).Return(new System.Collections.Specialized.NameValueCollection());
            this.container.RegisterInstance<IConfigurationManager>(icm);

            var metadataEntities = MockRepository.GenerateStub<IMetadataQuery>();
            this.container.RegisterInstance(metadataEntities);
            this.container.RegisterType<ObjectContext, MetadataEntities>("MetadataEntities", new InjectionConstructor[] { new InjectionConstructor(new object[] { }) });
            this.container.RegisterType<MetadataEntities>("MetadataEntities", new InjectionConstructor[] { new InjectionConstructor(new object[] { }) });

            string[] parameters = { "1" };
            this.mockBT = GetMockClaimsBusinessTransaction("CreateClaim", parameters);

            this.claimHeader = new BusinessComponentBuilder<ClaimHeader>()
                    .Add(new BusinessComponentBuilder<ClaimDetail>()
                        .As(out claimDetailRefFirst))
                    .Add(new BusinessComponentBuilder<ClaimDetail>()
                        .As(out claimDetailRefLast))
                    .Add(new BusinessComponentBuilder<ClaimTransactionHeader>()
                      .SetProperty(a => a.IsInProgress = true)
                      .SetProperty(a => a.ClaimTransactionSource = 1)
                    .Add(new BusinessComponentBuilder<ClaimTransactionGroup>()
                        .AddRef(claimDetailRefFirst))
                    .Add(new BusinessComponentBuilder<ClaimTransactionGroup>()
                        .AddRef(claimDetailRefLast)))
                  .Build();
            this.mockBT.Component = this.claimHeader;
        }
        public void ClaimReopenNotAllowedErrorTest()
        {
            string[] parameters = { this.claimHeader.ClaimHeaderID.ToString() };
            Xiap.Testing.Utils.Mocks.MockBusinessTransaction mockBT = new Xiap.Testing.Utils.Mocks.MockBusinessTransaction("ReopenClaim", parameters, "Claims", new ClaimsTransactionContext(Guid.NewGuid().ToString(), "Claims", "ReopenClaim"));
            this.claimHeader.ClaimHeaderID = 1;
            this.claimHeader.CustomCode18 = "F01"; // ClaimWakeUp Validation error check
            this.claimHeader.CustomCode19 = "C";
            mockBT.Component = this.claimHeader;
            ReopenClaimTransactionPlugin transaction = new ReopenClaimTransactionPlugin();
            this.results = transaction.ProcessTransaction(mockBT, TransactionInvocationPoint.PreCreate, 1, parameters);

            Assert.AreEqual(1, this.results.Count);
            Assert.AreEqual(ClaimConstants.REOPENING_OF_CLAIM_NOT_ALLOWED_WITHOUT_POLICY, this.results.Results.First().MessageId);
        }
        public void ValidateMigrationStatus_MigrationStatusIsNull_ClaimReopenNotAllowed()
        {
            string[] parameters = { this.claimHeader.ClaimHeaderID.ToString() };
            Xiap.Testing.Utils.Mocks.MockBusinessTransaction mockBT = new Xiap.Testing.Utils.Mocks.MockBusinessTransaction("ReopenClaim", parameters, "Claims", new ClaimsTransactionContext(Guid.NewGuid().ToString(), "Claims", "ReopenClaim"));
            this.claimHeader.ClaimHeaderID = 1;
            this.claimHeader.CustomCode18 = null;
            this.claimHeader.CustomCode19 = "C";
            mockBT.Component = this.claimHeader;
            ReopenClaimTransactionPlugin transaction = new ReopenClaimTransactionPlugin();
            this.results = transaction.ProcessTransaction(mockBT, TransactionInvocationPoint.PreCreate, 1, parameters);

            Assert.AreEqual(1, this.results.Count);
            Assert.AreEqual("REOPENING_OF_UNPROCESSED_CLAIM_NOT_ALLOWED", this.results.Results.First().MessageId);
        }
        public void Init()
        {
            UnityContainer container = new UnityContainer();
            container.RegisterInstance<IXiapCache>(MockRepository.GenerateStub<IXiapCache>());
            container.RegisterInstance<MetadataEntities>("MetadataEntities", new MetadataEntities());
            IProductClaimDetailQuery claimDetailQuery = MockRepository.GenerateStub<IProductClaimDetailQuery>();
            container.RegisterInstance<IProductClaimDetailQuery>(claimDetailQuery);
            IMetadataQuery metadataMock = MockRepository.GenerateStub<IMetadataQuery>();
            container.RegisterInstance<IMetadataQuery>(metadataMock);
            ObjectFactory.Instance = new ObjectFactory(container);
            this.mockBT = GetMockClaimsBusinessTransaction("AmendClaim", null);

            this.claimHeader = new BusinessComponentBuilder<ClaimHeader>()
                  .SetProperty(c => c.ClaimProductVersionID = 1)
                  .Add(new BusinessComponentBuilder<ClaimDetail>()
                    .As(out claimDetailRef)
                    .SetProperty(a => a.ClaimDetailStatusCode = "TST"))
                  .Add(new BusinessComponentBuilder<ClaimTransactionHeader>()
                      .SetProperty(a => a.IsInProgress = true)
                      .SetProperty(a => a.ClaimTransactionSource = 1)
                    .Add(new BusinessComponentBuilder<ClaimTransactionGroup>()
                        .AddRef(claimDetailRef)))
                  .Build();

            ClaimDetail claimDetail = this.claimHeader.ClaimDetails.First();
            string status = claimDetail.OriginalTransitionStatus;
            claimDetail.ClaimDetailStatusCode = "TST1";
            claimDetail.ClaimDetailInternalStatus = (short)StaticValues.ClaimDetailInternalStatus.Finalized;
            this.mockBT.Component = this.claimHeader as IBusinessComponent;
            
            ProductXML.ProductClaimDetail productClaimDetail = new ProductXML.ProductClaimDetail() { ProductClaimDetailID = 1, IsFinalizationWithNonZeroOSAllowed = true, ClaimDetailTypeCode = "TEST" };
            productClaimDetail.ProductClaimDetailToComponentLinks = new ProductXML.ProductClaimDetailToComponentLink[1]
                                                        {
                                                            new ProductXML.ProductClaimDetailToComponentLink()                                                            
                                                        };

            claimDetailQuery.Stub(x => x.GetProductClaimDetail(Arg<long>.Is.Anything)).Return(productClaimDetail);
           
            metadataMock.Stub(c => c.GetClaimDetailStatusCodeStatusLevel(Arg<long>.Is.Anything, Arg<string>.Is.Anything)).Return(10);
        }
 private static Xiap.Testing.Utils.Mocks.MockBusinessTransaction GetMockClaimsBusinessTransaction(string transactionType, string[] parameters)
 {
     Xiap.Testing.Utils.Mocks.MockBusinessTransaction mock = new Xiap.Testing.Utils.Mocks.MockBusinessTransaction(transactionType, parameters, "Claims", new ClaimsTransactionContext(Guid.NewGuid().ToString(), "Claims", transactionType));
     return mock;
 }