public void RequestIdInResponseShouldMatchWithRequestParam()
        {
            // given
            var id = int.Parse(sourcesystem.ToMdmId().Identifier);
            var mdmReqInfo = new MdmRequestInfo {RequestId = "Test123"};
            // when
            var response = MdmService.Get<SourceSystem>(id);
            var entity = response.Message;
            entity.Identifiers = new MdmIdList() { entity.Identifiers.SystemId() };

            // then
            response = MdmService.Update(id, entity, response.Tag,mdmReqInfo);
            Assert.IsTrue(response.IsValid &&  response.RequestId==mdmReqInfo.RequestId , "###Error : " + response.Code + " : " + (response.Fault == null ? string.Empty : response.Fault.Message + " : " + response.Fault.Reason));

            var mappingId = Guid.NewGuid().ToString();
            var mdmUpdateResponse = MdmService.CreateMapping<SourceSystem>(id, new MdmId { SystemName = "Endur", Identifier = mappingId }, mdmReqInfo);
            Assert.IsTrue(mdmUpdateResponse.IsValid && mdmUpdateResponse.RequestId == mdmReqInfo.RequestId, "###Error : " + response.Code + " : " + (response.Fault == null ? string.Empty : response.Fault.Message + " : " + response.Fault.Reason));

            if (mdmUpdateResponse.Message!=null && mdmUpdateResponse.Message.MappingId.HasValue)
            {
                var mdmDeleteResponse = MdmService.DeleteMapping<SourceSystem>(id,
                   (int)mdmUpdateResponse.Message.MappingId.Value, mdmReqInfo);
                Assert.IsTrue(mdmDeleteResponse.IsValid && mdmDeleteResponse.RequestId == mdmReqInfo.RequestId, "###Error : " + response.Code + " : " + (response.Fault == null ? string.Empty : response.Fault.Message + " : " + response.Fault.Reason));
            }
        }
        public void CreateEntity(MdmRequestInfo requestInfo)
        {
            var requester = new Mock<IMessageRequester>();
            var service = new MdmEntityService<SourceSystem>("sourcesystem", requester.Object);
            var sourcesystem = new SourceSystem();
            var response = new WebResponse<SourceSystem>() { Code = HttpStatusCode.OK, IsValid = true };

            requester.Setup(x => x.Create("sourcesystem", sourcesystem, requestInfo ?? It.IsAny<MdmRequestInfo>()))
                .Returns(response);

            requester.Setup(x => x.Request<SourceSystem>(It.IsAny<string>()))
                .Returns(new WebResponse<SourceSystem>
                             {
                                 IsValid = true,
                                 Code = HttpStatusCode.OK,
                                 Message = sourcesystem,
                             });

            // Act

            var result = (requestInfo == null) ? service.Create(sourcesystem) : service.Create(sourcesystem, requestInfo);

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, result.Code, "Status code differ");
            Assert.AreEqual(true, result.IsValid, "IsValid differ");
        }
        public void DeleteMapping(MdmRequestInfo requestInfo)
        {
            var requester = new Mock<IMessageRequester>();
            var service = new MdmEntityService<SourceSystem>("sourcesystem", requester.Object);

            requester.Setup(x => x.Delete<SourceSystem>("sourcesystem/77/mapping/33",requestInfo?? It.IsAny<MdmRequestInfo>())).Returns(new WebResponse<SourceSystem>() { Code = HttpStatusCode.OK, IsValid = true });

            // Act
            var result = (requestInfo == null) ? service.DeleteMapping(77, 33) : service.DeleteMapping(77, 33,requestInfo);

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, result.Code, "Status code differ");
            Assert.AreEqual(true, result.IsValid, "IsValid differ");
        }