public void commentsAreIgnored() { List <String> logger = new List <String>(); var me = new Mock <IMyProgrammableBlock>(); MDKFactory.ProgramConfig config = default; config.Echo = (message) => logger.Add(message); config.ProgrammableBlock = me.Object; var program = MDKFactory.CreateProgram <Program>(config); String script = @" :main #This is a comment print 'Hello World' "; me.Setup(b => b.CustomData).Returns(script); Program.LOG_LEVEL = Program.LogLevel.SCRIPT_ONLY; //TODO: Replace this with mock objects passed to config setup in Program. Program.BROADCAST_MESSAGE_PROVIDER = (x) => new List <MyIGCMessage>(); MDKFactory.Run(program); Assert.AreEqual(1, logger.Count); Assert.AreEqual("Hello World", logger[0]); }
public ScriptTest(String script) { Logger = new List <String>(); RunCounter = 0; // Setup the CUSTOM_DATA to return the given script // And other required config for mocking mockGrid = new MockGridTerminalSystem(); me = new Mock <IMyProgrammableBlock>(); MockBlocksOfType("Script Program", me); MDKFactory.ProgramConfig config = default; config.GridTerminalSystem = mockGrid; config.ProgrammableBlock = me.Object; config.Echo = (message) => Logger.Add(message); program = MDKFactory.CreateProgram <Program>(config); program.functionParseAmount = 1000; program.logLevel = Program.LogLevel.SCRIPT_ONLY; // Default behavior for broadcast messages // TODO: Replace this with mock objects passed to config setup in Program program.broadcastMessageProvider = () => new List <MyIGCMessage>(); setScript(script); }
public void Runs() { var config = new MDKFactory.ProgramConfig { GridTerminalSystem = Mock.Of <IMyGridTerminalSystem>(), }; TestBootstrapper.Run(config); }
public void TestCommand_Terminates() { var config = new MDKFactory.ProgramConfig { GridTerminalSystem = Mock.Of <IMyGridTerminalSystem>(), }; TestBootstrapper.Run(config, "test"); }
public void conditionalVelocityAndSoundBlockTest() { var mockRoverCockpit = new Mock <IMyCockpit>(); var mockReverseSirens = new Mock <IMySoundBlock>(); mockRoverCockpit.Setup(b => b.WorldMatrix).Returns(MatrixD.CreateWorld(Vector3D.Zero)); mockRoverCockpit.Setup(b => b.GetShipVelocities()).Returns(new MyShipVelocities(new Vector3D(0, 0, 2), Vector3D.Zero)); mockReverseSirens.Setup(b => b.CustomData).Returns("Playing=False"); var me = new Mock <IMyProgrammableBlock>(); MDKFactory.ProgramConfig config = default; config.ProgrammableBlock = me.Object; var program = MDKFactory.CreateProgram <Program>(config); String script = @" :reverseSirens if ""rover cockpit"" backwards velocity > 1 if ""reverse sirens"" are off turn on the ""reverse sirens"" else turn off the ""reverse sirens"" "; me.Setup(b => b.CustomData).Returns(script); //TODO: Replace these with mock objects passed to config setup in Program. Program.BROADCAST_MESSAGE_PROVIDER = (x) => new List <MyIGCMessage>(); Program.BlockHandlerRegistry.BLOCK_PROVIDER = (blockType, name) => { var blocks = new List <Object>(); if (blockType.Equals(Program.BlockType.COCKPIT) && name.Equals("rover cockpit")) { blocks.Add(mockRoverCockpit.Object); } return(blocks); }; Program.BlockHandlerRegistry.GROUP_BLOCK_PROVIDER = (blockType, name) => { var blocks = new List <Object>(); if (blockType.Equals(Program.BlockType.SOUND) && name.Equals("reverse sirens")) { blocks.Add(mockReverseSirens.Object); } return(blocks); }; MDKFactory.Run(program); mockReverseSirens.Verify(b => b.Play(), Times.Once); }
/// <summary> /// Installs the program for the given mocked run. Any programmable block may only be /// a part of a single mocked run or behavior is undefined. /// </summary> /// <param name="mockedRun"></param> public virtual void Install(MockedRun mockedRun) { if (Program != null) { return; } if (ProgramType == null) { return; } Debug.Assert(Runtime != null, $"{nameof(Runtime)} != null"); var config = new MDKFactory.ProgramConfig { GridTerminalSystem = mockedRun.GridTerminalSystem, Runtime = Runtime, ProgrammableBlock = this, Echo = mockedRun.Echo, Storage = Storage }; Program = MDKFactory.CreateProgram(ProgramType, config); }
public static void Run(MDKFactory.ProgramConfig config, string argument = "") { var program = MDKFactory.CreateProgram <Program>(config); MDKFactory.Run(program, argument); }
public static void Run(MDKFactory.ProgramConfig config) { var program = MDKFactory.CreateProgram <Program>(config); MDKFactory.Run(program); }