Ejemplo n.º 1
0
 public void BlocksShouldReceiveOnFixWhenFixGroup()
 {
     IGroup group = new Group(setting);
     IBlock blockOne = Substitute.For<IBlock>();
     blockOne.Location.Returns(new Coord(0, 1));
     IBlock blockTwo = Substitute.For<IBlock>();
     blockTwo.Location.Returns(new Coord(1, 0));
     group.AddBlock(blockOne);
     group.AddBlock(blockTwo);
     group.Fix();
     blockOne.Received().OnFix();
     blockTwo.Received().OnFix();
 }
Ejemplo n.º 2
0
    public void BlocksShouldReceiveOnFixWhenFixGroup()
    {
        IGroup group    = new Group(setting);
        IBlock blockOne = Substitute.For <IBlock>();

        blockOne.Location.Returns(new Coord(0, 1));
        IBlock blockTwo = Substitute.For <IBlock>();

        blockTwo.Location.Returns(new Coord(1, 0));
        group.AddBlock(blockOne);
        group.AddBlock(blockTwo);
        group.Fix();
        blockOne.Received().OnFix();
        blockTwo.Received().OnFix();
    }
Ejemplo n.º 3
0
    public IGroup Create(ISetting setting)
    {
        if (_groupPatternList == null || _groupPatternList.Count == 0)
        {
            Debug.Log("Group Pattern List is not to be set!");
            return(null);
        }

        IGroup    group       = new Group(setting);
        Transform groupHolder = null;

        if (setting.IsProduction)
        {
            groupHolder  = new GameObject("Group").transform;
            group.Parent = groupHolder.transform;
            group.Parent.SetParent(setting.Parent, false);
        }

        var           random       = setting.Random;
        IGroupPattern groupPattern = _groupPatternList[random.Next(0, _groupPatternList.Count)];

        for (int i = 0; i < groupPattern.Patterns[0].Length; i++)
        {
            IBlock block = _blockFactory.Create(groupHolder, setting, BlockTypeHelper.GetRandom(setting.Random), groupPattern.Patterns[0][i]);
            group.AddBlock(block);
        }

        group.SetPattern(groupPattern.Patterns);

        return(group);
    }
Ejemplo n.º 4
0
    public void ShouldChangeChildrenOffsets()
    {
        IGroup group = new Group(setting);

        IBlock blockOne = Substitute.For <IBlock>();

        blockOne.Location.Returns(new Coord(0, 1));
        IBlock blockTwo = Substitute.For <IBlock>();

        blockTwo.Location.Returns(new Coord(1, 0));
        group.AddBlock(blockOne);
        group.AddBlock(blockTwo);

        group.Offset = new Vector3(2, 2);
        blockOne.Received().Offset = new Vector3(2, 2);
        blockTwo.Received().Offset = new Vector3(2, 2);
    }
Ejemplo n.º 5
0
    public IGroup Create(ISetting setting, IBlockPattern blockPattern, IGroupPattern groupPattern)
    {
        IGroup group = new Group(setting);

        for (int i = 0; i < groupPattern.Patterns[0].Length; i++)
        {
            IBlock block = _blockFactory.Create(setting, blockPattern.Types[i], groupPattern.Patterns[0][i]);
            group.AddBlock(block);
        }

        group.SetPattern(groupPattern.Patterns);

        return(group);
    }
Ejemplo n.º 6
0
    public void ShouldAddBlockToTheGroup()
    {
        IGroup group = new Group(setting);

        Assert.IsFalse(group.ChildrenLocation.ToList().Contains(new Coord(0, 0)));

        IBlock blockOne = Substitute.For <IBlock>();

        blockOne.Location.Returns(new Coord(0, 1));
        IBlock blockTwo = Substitute.For <IBlock>();

        blockTwo.Location.Returns(new Coord(1, 0));
        group.AddBlock(blockOne);
        group.AddBlock(blockTwo);
        List <Coord> coords = group.ChildrenLocation.ToList();

        Assert.IsTrue(coords.Contains(new Coord(0, 1)));
        Assert.IsTrue(coords.Contains(new Coord(1, 0)));
        for (int i = 0; i < group.Children.Length; i++)
        {
            Assert.AreEqual(group.Children[i].Location, group.ChildrenLocation[i]);
        }
    }
Ejemplo n.º 7
0
    public void ShouldAddBlockToTheGroup()
    {
        IGroup group = new Group(setting);
        Assert.IsFalse(group.ChildrenLocation.ToList().Contains(new Coord(0, 0)));

        IBlock blockOne = Substitute.For<IBlock>();
        blockOne.Location.Returns(new Coord(0, 1));
        IBlock blockTwo = Substitute.For<IBlock>();
        blockTwo.Location.Returns(new Coord(1, 0));
        group.AddBlock(blockOne);
        group.AddBlock(blockTwo);
        List<Coord> coords = group.ChildrenLocation.ToList();
        Assert.IsTrue(coords.Contains(new Coord(0, 1)));
        Assert.IsTrue(coords.Contains(new Coord(1, 0)));
        for (int i = 0; i < group.Children.Length; i++)
        {
            Assert.AreEqual(group.Children[i].Location, group.ChildrenLocation[i]);
        }
    }
Ejemplo n.º 8
0
    public void ShouldChangeChildrenOffsets()
    {
        IGroup group = new Group(setting);

        IBlock blockOne = Substitute.For<IBlock>();
        blockOne.Location.Returns(new Coord(0, 1));
        IBlock blockTwo = Substitute.For<IBlock>();
        blockTwo.Location.Returns(new Coord(1, 0));
        group.AddBlock(blockOne);
        group.AddBlock(blockTwo);

        group.Offset = new Vector3(2, 2);
        blockOne.Received().Offset = new Vector3(2, 2);
        blockTwo.Received().Offset = new Vector3(2, 2);
    }