public void SaveScreenshot(byte[] screenshotBytes, string format = "png") { var now = DateTime.Now; while (!TestRunStarted && (DateTime.Now - now).TotalSeconds < 1) { Thread.Sleep(50); } var testGuid = TestDataProvider.GetCurrentTestRunGuid(); var base64String = Convert.ToBase64String(screenshotBytes); var testScreenshot = new TestScreenshotDto { TestGuid = testGuid, Base64Data = base64String, TestScreenshotInfo = new SimpleItemInfoDto { Date = DateTime.Now, ItemName = string.Empty }, Format = format }; Logger.Info($"Saving screenshot (Test guid: {testScreenshot.TestGuid})"); DataWriterService.SaveScreenshot(testScreenshot); }
public void Setup() { WorkingDirectory = @"C:\ExportedData\"; FileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { // MockFileSystem requires a trailing slash at time of writing. See: https://github.com/tathamoddie/System.IO.Abstractions/issues/208 { WorkingDirectory, new MockDirectoryData() } }); FileManager = new FileManager(FileSystem); Service = new Mock <IOrganizationService>(); DataTransformService = new DataTransformService(); DataReaderService = new DataReaderService(Service.Object, FileManager); DataWriterService = new DataWriterService(Service.Object, FileManager); Entities = new EntityCollection(new List <Entity> { new Entity("contact", Guid.NewGuid()), new Entity("contact", Guid.NewGuid()), new Entity { LogicalName = "contact", Id = Guid.NewGuid(), Attributes = new AttributeCollection { { "fullname", "Joe Bloggs" } } } }); }
public void SetStateInvokedWithCorrectArguments() { var entity = new Entity { Id = Guid.NewGuid(), LogicalName = "contact", Attributes = new AttributeCollection { { "statecode", new OptionSetValue(1) }, { "statuscode", new OptionSetValue(2) } } }; var request = new SetStateRequest(); Service.Setup(s => s.Execute(It.IsAny <SetStateRequest>())) .Returns(new SetStateResponse()) .Callback <SetStateRequest>(s => request = s); DataWriterService.SetEntityState(entity); Assert.AreEqual(new OptionSetValue(1), request.State); Assert.AreEqual(new OptionSetValue(2), request.Status); Assert.AreEqual(entity.ToEntityReference(), request.EntityMoniker); }
public void ParsesDataFromFile() { var dataBefore = new ExportedData { BaseBu = Guid.NewGuid(), RecordSets = new List <ExportEntity> { new ExportEntity { Id = Guid.NewGuid() }, new ExportEntity { Id = Guid.NewGuid() }, new ExportEntity { Id = Guid.NewGuid() } } }; DataWriterService.WriteDataToFile(dataBefore, WorkingDirectory); var dataAfter = DataReaderService.ParseDataFromFile(WorkingDirectory); Assert.AreEqual(3, dataAfter.RecordSets.Count); }
private void GenerateReport(DateTime finishDateTime) { Action.Safe(() => { RunRepository.OnRunFinished(finishDateTime); DataWriterService.SaveRun(RunRepository.CurrentRun); Logger.Info($"Report generated at {finishDateTime:yyyy-MM-dd HH:mm:ss.fff}"); }); }
private void OnTestFinish(TestRunDto testDtoWhenFinished, TestOutputDto testOutputDto) { Action.Safe(() => { RunRepository.OnTestFinished(testDtoWhenFinished); var testDtoWhenStarted = TestRunsRepository.ExtractCorrespondingTestRun(testDtoWhenFinished); var finalTest = TestRunProcessor.Process(testDtoWhenStarted, testDtoWhenFinished, RunRepository.RunGuid); Logger.Debug($"Saving test run '{finalTest.Name}' (Guid: {finalTest.TestInfo.Guid})"); DataWriterService.SaveTestRun(finalTest, testOutputDto); }); }
private void InitializeOnRunStarted(DateTime startDateTime) { Action.Safe(() => { Logger.Debug("Reporter is initializing on run start..."); RunRepository.OnRunStarted(ReporterSettings, startDateTime); TestRunsRepository.OnRunStarted(); ResourceExtractor.ExtractReportBase(ReporterSettings.OutputPath); DataWriterService.SaveReportSettings(ReportSettings); Logger.Debug($"Reporter initializing done. Output folder is '{ReporterSettings.OutputPath}'. " + $"Data service file: '{ReporterSettings.DataServiceFile}', Logger file: '{ReporterSettings.LoggerFile}'"); }); }
public void DoesntAssociateWithoutTwoGuids() { var entity = new Entity { Id = Guid.NewGuid(), LogicalName = "contact", Attributes = new AttributeCollection { { "interest", new EntityReference("interest", Guid.NewGuid()) } } }; DataWriterService.AssociateManyToMany(entity); Service.Verify(s => s.Associate("interest", It.IsAny <Guid>(), It.IsAny <Relationship>(), It.IsAny <EntityReferenceCollection>()), Times.Never()); }
public void SetsEntityState() { var entity = new Entity { Id = Guid.NewGuid(), LogicalName = "contact", Attributes = new AttributeCollection { { "statecode", new OptionSetValue(1) }, { "statuscode", new OptionSetValue(2) } } }; DataWriterService.SetEntityState(entity); Service.Verify(s => s.Execute(It.IsAny <SetStateRequest>()), Times.Once()); }
public void WritesDataToFile() { Assert.IsFalse(FileManager.FileSystem.File.Exists(@"C:\ExportedData\ExportedData.json")); var exportedData = new ExportedData(); exportedData.RecordSets = new List <ExportEntity> { new ExportEntity { Id = Guid.NewGuid() } }; DataWriterService.WriteDataToFile(exportedData, @"C:\ExportedData\"); Assert.IsTrue(FileManager.FileSystem.File.Exists(@"C:\ExportedData\ExportedData.json")); }
public void RemovesStatusAttributes() { var entity = new Entity { Id = Guid.NewGuid(), LogicalName = "contact", Attributes = new AttributeCollection { { "statecode", new OptionSetValue(1) }, { "statuscode", new OptionSetValue(2) }, { "firstname", "Joe" } } }; DataWriterService.RemoveStatusAttributes(entity); Assert.IsFalse(entity.Attributes.Contains("statecode")); Assert.IsFalse(entity.Attributes.Contains("statuscode")); Assert.IsTrue(entity.Attributes.Contains("firstname")); }
public void MapsGuids() { var interestId = Guid.NewGuid(); var replacementId = Guid.NewGuid(); var guidMap = new Dictionary <Guid, Guid> { { interestId, replacementId } }; var entity = new Entity { Id = Guid.NewGuid(), LogicalName = "contact", Attributes = new AttributeCollection { { "interest", new EntityReference("interest", interestId) } } }; Assert.AreNotEqual(replacementId, entity.GetAttributeValue <EntityReference>("interest").Id); DataWriterService.MapEntityGuids(entity, guidMap); Assert.AreEqual(replacementId, entity.GetAttributeValue <EntityReference>("interest").Id); }