Пример #1
0
        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);
        }
Пример #2
0
        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");
        }