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(); }
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(); }
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); }
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); }
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); }
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]); } }
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]); } }
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); }