예제 #1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        LevelImporter importer = (LevelImporter)target;

        if (GUILayout.Button("Import Level"))
        {
            importer.Import();
        }
    }
예제 #2
0
        public void TestReadWriteData()
        {
            var gridEditorSettingsForExport = Substitute.For <IGridEditorSettings>();
            var gridEditorSettingsForImport = Substitute.For <IGridEditorSettings>();

            LevelSummary expectedLevelSummary = new LevelSummary(59, "the level name");

            for (int i = 0; i < 10; i++)
            {
                expectedLevelSummary.BallData.Add(CreateRandomBallData());
            }

            gridEditorSettingsForExport.GetExportData().Returns(expectedLevelSummary);
            LevelSummary actualLevelSummary = null;

            gridEditorSettingsForImport
            .When(e => e.SetLevelData(Arg.Any <LevelSummary>()))
            .Do(x => actualLevelSummary = x.Arg <LevelSummary>());

            var levelExporter = new LevelExporter(gridEditorSettingsForExport);
            var levelImporter = new LevelImporter(gridEditorSettingsForImport);

            levelExporter.Export();
            var expectedFile = GameConstants.Levels.RelativeResourcePath + "level-" + expectedLevelSummary.OrdinalNumber +
                               ".bin";

            FileAssert.Exists(expectedFile);

            var successfullyImported = levelImporter.Import(expectedFile);

            Assert.True(successfullyImported);

            Assert.NotNull(actualLevelSummary);
            Assert.AreEqual(expectedLevelSummary.LevelNumber, actualLevelSummary.LevelNumber);
            Assert.AreEqual(expectedLevelSummary.OrdinalNumber, actualLevelSummary.OrdinalNumber);
            CollectionAssert.AreEquivalent(expectedLevelSummary.BallData, actualLevelSummary.BallData);
        }