public void TestGenerateInvalidValueRetry() { var prompter = new TestPrompter(); var generator = new Generator(prompter); prompter.AddResponse("bing.com"); prompter.AddResponse("to"); prompter.AddResponse("n"); prompter.AddResponse("n"); prompter.AddResponse("LossAction"); prompter.AddResponse("invalid1"); prompter.AddResponse("invalid2"); prompter.AddResponse("0.5"); prompter.AddResponse("invalidOptional1"); prompter.AddResponse("invalidOptional2"); prompter.AddResponse("y"); prompter.AddResponse("0.2"); prompter.AddResponse("n"); NetworkChaos resource = generator.GenerateResource <NetworkChaos>(); resource.ExternalTargets.Should().Equal(new List <string> { "bing.com" }); resource.Action.Should().BeAssignableTo <NetworkChaos.LossAction>(); var loss = resource.Action as NetworkChaos.LossAction; loss.Loss.Should().Be(0.5); loss.Correlation.Should().Be(0.2); }
public void TestRenderNestedProperties() { var template = @"name: (( Name )) (( Action )) "; var net = new NetworkChaos { Name = "TestNetworkChaos", Action = new NetworkChaos.DelayAction { Latency = "50ms", Reorder = new NetworkChaos.ReorderSpec { Gap = 1, Reorder = 0.2, } }, Template = template }; net.Render(); var lines = net.Rendered.ToList(); lines.Count().Should().Be(2); lines[0].Should().Be("name: TestNetworkChaos"); var delayRender = lines[1].Split('\n'); delayRender.Count().Should().Be(8); delayRender[0].Should().StartWith(" #"); delayRender[1].Should().Be(" action: delay"); delayRender[2].Should().Be(" delay:"); delayRender[3].Should().Be(" latency: 50ms"); delayRender[4].Should().StartWith(" #"); delayRender[5].Should().Be(" reorder:"); delayRender[6].Should().Be(" gap: 1"); delayRender[7].Should().Be(" reorder: 0.2"); }