public void Write_Steps_With_Screen_Annotations() { // arrange var usecase = new UseCase { Name = "Screen Annotations", Description = "Usecase to show the screen annotations", Status = "failed", }; writer.SaveUseCase(usecase); var scenario = new Scenario { Name = "All screen annotations on one page", Description = "this is a typical scenario with a decription", Status = "failed", }; writer.SaveScenario(usecase.Name, scenario); writer.Flush(); // act var step = new Step(); var stepDescription = new StepDescription { Index = StepIndex, Title = "Test Step", Status = "success" }; step.StepDescription = stepDescription; step.StepHtml = new StepHtml { HtmlSource = "<html>just some page text</html>" }; step.Page = new Page { Name = "Sample Screen Annotation Page" }; step.StepDescription.ScreenshotFileName = "000.png"; step.StepDescription.Index = 0; step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(10, 50, ScreenAnnotationStyle.Highlight)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(10, 150, ScreenAnnotationStyle.Click, ScreenAnnotationClickAction.ToUrl, "next-url")); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(10, 250, ScreenAnnotationStyle.Error)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(10, 350, ScreenAnnotationStyle.Expected)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(10, 450, ScreenAnnotationStyle.Info)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(400, 50, ScreenAnnotationStyle.Keyboard)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(400, 150, ScreenAnnotationStyle.Warn)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(400, 250, ScreenAnnotationStyle.Default)); step.ScreenAnnotations.Add(DataGenerator.CreateScreenAnnotation(400, 350, ScreenAnnotationStyle.NavigateToUrl, ScreenAnnotationClickAction.ToUrl, "blabla")); var details = new Details(); details.AddDetail("details-key", "details-value"); step.ScreenAnnotations.Last().Details = details; writer.SaveStep(usecase.Name, scenario.Name, step); writer.Flush(); writer.SaveScreenshot(usecase.Name, scenario.Name, step, File.ReadAllBytes("data/screenshot.png")); writer.Flush(); usecase.Status = "success"; scenario.Status = "success"; writer.SaveUseCase(usecase); writer.SaveScenario(usecase.Name, scenario); var stepAsString = File.ReadAllText(docuFiles.GetScenarioStepFile(BranchName, BuildName, usecase.Name, scenario.Name, 0)); // well this is a really sloppy assertion. BUT: we don't have to test the whole serialization because this is done by .NET framework. // we have to do some little things that the java deserializer likes our xml. So we do just some checks on "problem zones". the whole // import should still be checked with an api call on the scenarioo backend. StringAssert.Contains("<style>HIGHLIGHT</style>", stepAsString); StringAssert.Contains("<style>CLICK</style>", stepAsString); StringAssert.Contains("<style>ERROR</style>", stepAsString); StringAssert.Contains("<style>INFO</style>", stepAsString); StringAssert.Contains("<style>EXPECTED</style>", stepAsString); }
public void Serialized_Usecase_Can_Be_Read() { // arrange var usecase = new UseCase { Name = SerializationUseCase, Description = "Serialization of scenarioo objects with .NET", Status = "success", }; usecase.AddDetail("webtestName", "UseCaseWebTest"); // act writer.SaveUseCase(usecase); writer.Flush(); // assert Assert.IsTrue(File.Exists(docuFiles.GetUseCaseFile(BranchName, BuildName, SerializationUseCase))); var usecaseXml = File.ReadAllText(docuFiles.GetUseCaseFile(BranchName, BuildName, SerializationUseCase)); StringAssert.Contains("UseCaseWebTest", usecaseXml); StringAssert.Contains(usecase.Name, usecaseXml); StringAssert.Contains(usecase.Description, usecaseXml); StringAssert.Contains(usecase.Status, usecaseXml); }