public void WarningsTest_MissingBodyAssignment()
        {
            this.farm1.Body = null;
            this.farm2.Body = null;
            var actual = StaticAnalysis.CheckBodyIsSet(colonizationResearch, this.producers, this.emptyContainers, this.emptyContainers).ToList();

            Assert.AreEqual(1, actual.Count);
            Assert.AreEqual("Need to set up the target for the world-specific parts", actual[0].Message);
            Assert.IsNotNull(actual[0].FixIt);
            actual[0].FixIt();
            Assert.AreEqual("munmuss", this.farm1.Body);
            actual = StaticAnalysis.CheckBodyIsSet(colonizationResearch, this.producers, this.emptyContainers, this.emptyContainers).ToList();
            Assert.AreEqual(0, actual.Count);

            // If nothing is set up
            foreach (var p in this.producers)
            {
                p.Body = null;
            }
            actual = StaticAnalysis.CheckBodyIsSet(colonizationResearch, this.producers, this.emptyContainers, this.emptyContainers).ToList();
            // Then it gets complained about, but no fix is offered
            Assert.AreEqual(1, actual.Count);
            Assert.AreEqual("Need to set up the target for the world-specific parts", actual[0].Message);
            Assert.IsNull(actual[0].FixIt);
        }
        public void WarningsTest_NoPartsTest()
        {
            var result = StaticAnalysis.CheckBodyIsSet(colonizationResearch, new List <ITieredProducer>(), this.emptyContainers, this.emptyContainers);

            Assert.IsNotNull(result);
            Assert.IsFalse(result.Any());
        }
        public void WarningsTest_HappyParts()
        {
            var result = StaticAnalysis.CheckBodyIsSet(colonizationResearch, this.producers, this.emptyContainers, this.emptyContainers);

            Assert.IsNotNull(result);
            Assert.IsFalse(result.Any());
        }
        public void WarningsTest_MismatchedBodyAssignment()
        {
            this.farm1.Body = "splut";
            this.farm2.Body = null;
            var actual = StaticAnalysis.CheckBodyIsSet(colonizationResearch, this.producers, this.emptyContainers, this.emptyContainers).ToList();

            Assert.AreEqual(1, actual.Count);
            Assert.AreEqual("Not all of the body-specific parts are set up for munmuss", actual[0].Message);
            Assert.IsNotNull(actual[0].FixIt);
            actual[0].FixIt();
            Assert.AreEqual("munmuss", this.farm1.Body);
            Assert.AreEqual("munmuss", this.farm2.Body);
            actual = StaticAnalysis.CheckBodyIsSet(colonizationResearch, this.producers, this.emptyContainers, this.emptyContainers).ToList();
            Assert.AreEqual(0, actual.Count);
        }