コード例 #1
0
    public void ReadPokemonDataTest()
    {
        var mockPokemonService      = new Mock <IPokemonService>();
        var mockModServiceContainer = new Mock <IModServiceContainer>();

        mockModServiceContainer.SetupGet(i => i.Pokemon).Returns(mockPokemonService.Object);

        var input = new Pokemon()
        {
            Name        = "Pikachu",
            Type1       = TypeId.Electric,
            Hp          = 20,
            IsLegendary = false,
        };

        mockPokemonService.Setup(i => i.Retrieve(15)).Returns(input);

        // Create

        string readPokemonDataTestFile = Path.Combine(TestScriptFolder, "ReadPokemonDataTest.lua");

        File.Exists(readPokemonDataTestFile).Should().BeTrue();

        var luaService = new LuaService(mockModServiceContainer.Object);

        // assertions done within script
        luaService.RunScript(readPokemonDataTestFile);
    }
コード例 #2
0
    public void EnumerateByIdTest()
    {
        // this test is important because it was necessary to use Enumerable.Range()
        // rather than a generator to provide the IEnumerable
        // else luanet.each doesn't work

        var itemService = new ItemService(Path.Combine(TestModFolder, Constants.ItemRomPath));

        var mockModServiceContainer = new Mock <IModServiceContainer>();

        mockModServiceContainer.SetupGet(i => i.Item).Returns(itemService);

        string enumerateByIdTestFile = Path.Combine(TestScriptFolder, "EnumerateByIdTest.lua");

        File.Exists(enumerateByIdTestFile).Should().BeTrue();

        var luaService = new LuaService(mockModServiceContainer.Object);

        luaService.RunScript(enumerateByIdTestFile);

        int id = 0;

        foreach (var item in itemService.Enumerate())
        {
            item.Name.Should().Be(id.ToString());
            item.ShopPriceMultiplier.Should().Be(id);
            id++;
        }
    }
コード例 #3
0
    public void EnumerateWarriorsTest()
    {
        var warriorService = new BaseWarriorService(Path.Combine(TestModFolder, Constants.BaseBushouRomPath));

        var mockModServiceContainer = new Mock <IModServiceContainer>();

        mockModServiceContainer.SetupGet(i => i.BaseWarrior).Returns(warriorService);

        string enumerateWarriorsTestFile = Path.Combine(TestScriptFolder, "EnumerateWarriorsTest.lua");

        File.Exists(enumerateWarriorsTestFile).Should().BeTrue();

        var luaService = new LuaService(mockModServiceContainer.Object);

        luaService.RunScript(enumerateWarriorsTestFile);

        foreach (var warrior in warriorService.Enumerate())
        {
            warrior.Wisdom.Should().Be(45);
            warrior.Speciality1.Should().Be(TypeId.Fire);
        }
    }
コード例 #4
0
    public void ScriptInteractWithPokemonService()
    {
        var mockPokemonService      = new Mock <IPokemonService>();
        var mockModServiceContainer = new Mock <IModServiceContainer>();

        mockModServiceContainer.SetupGet(i => i.Pokemon).Returns(mockPokemonService.Object);

        var input = new Pokemon()
        {
            Type1       = TypeId.Grass,
            Hp          = 20,
            IsLegendary = false,
        };

        mockPokemonService.Setup(i => i.Retrieve(15)).Returns(input);

        // Create

        string setPropertySaveTestFile = Path.Combine(TestScriptFolder, "SetPropertyAndSaveTest.lua");

        File.Exists(setPropertySaveTestFile).Should().BeTrue();

        var luaService = new LuaService(mockModServiceContainer.Object);

        luaService.RunScript(setPropertySaveTestFile);

        // Test Changes Occurred

        mockPokemonService.Verify(i => i.Retrieve(15), Times.Once());
        mockPokemonService.Verify(i => i.Save(), Times.Once());

        input.Type1.Should().Be(TypeId.Electric);
        input.Hp.Should().Be(34);
        input.IsLegendary.Should().BeTrue();
        input.Evolutions.Should().ContainSingle().Which.Should().Be(PokemonId.Glaceon);
    }