Example #1
0
        private GenericChaosResource CreateChaosResource(string ns, string testInstance, bool paused)
        {
            var chaos = new GenericChaosResource
            {
                Metadata = new V1ObjectMeta(),
                Spec     = new ChaosResourceSpec
                {
                    Selector = new ChaosSelector
                    {
                        Namespaces = new List <string> {
                            ns
                        },
                        LabelSelectors = new ChaosLabelSelectors
                        {
                            TestInstance = testInstance
                        }
                    }
                }
            };

            if (paused)
            {
                chaos.Metadata.Annotations = new Dictionary <string, string>
                {
                    { GenericChaosResource.PauseAnnotationKey, "true" }
                };
            }

            return(chaos);
        }
Example #2
0
        public void GetTestInstanceTest()
        {
            var chaosResource = new GenericChaosResource();
            var networkChaos  = new ChaosResourceSpec();

            // Null selector
            chaosResource.Spec = new ChaosResourceSpec();
            chaosResource.Spec.NetworkChaos = networkChaos;
            chaosResource.Spec.GetTestInstance().Should().Be(null);

            // Null labelSelector
            networkChaos.Selector           = new ChaosSelector();
            chaosResource.Spec.NetworkChaos = networkChaos;
            chaosResource.Spec.GetTestInstance().Should().Be(null);

            // Null testInstance
            networkChaos.Selector.LabelSelectors = new ChaosLabelSelectors()
            {
                TestInstance = null
            };
            chaosResource.Spec.NetworkChaos = networkChaos;
            chaosResource.Spec.GetTestInstance().Should().Be(null);

            // Empty string testInstance
            networkChaos.Selector.LabelSelectors.TestInstance = "";
            chaosResource.Spec.NetworkChaos = networkChaos;
            chaosResource.Spec?.GetTestInstance().Should().Be("");

            // Non-empty nested testInstance
            networkChaos.Selector.LabelSelectors.TestInstance = "ResourceTestTestInstance";
            networkChaos.GetTestInstance().Should().Be("ResourceTestTestInstance");
            chaosResource.Spec.NetworkChaos = networkChaos;
            chaosResource.Spec.GetTestInstance().Should().Be("ResourceTestTestInstance");

            // Non-empty non-nested testInstance
            chaosResource.Spec.NetworkChaos = null;
            chaosResource.Spec.Selector     = new ChaosSelector()
            {
                LabelSelectors = new ChaosLabelSelectors()
                {
                    TestInstance = "ResourceTestTestInstance"
                }
            };
            chaosResource.Spec.GetTestInstance().Should().Be("ResourceTestTestInstance");
        }