public void SetTile_MaskPassed(int x, int y) { var position = new Vector(x, y); var tile = new Tile(); var extent = Mock.Of <Extent>(e => e.SetTile(position, tile)); var mask = Mock.Of <Mask>(m => m.Test(extent, It.IsAny <Vector>())); var maskedExtent = new MaskedExtent(extent, mask); Assert.That(maskedExtent.SetTile(position, tile)); Mock.Get(extent).Verify(e => e.SetTile(position, tile)); }
public void SetTile_MaskFailed(int x, int y) { var position = new Vector(x, y); var tile = new Tile(); var extent = Mock.Of <Extent>(); Mock.Get(extent).Setup(e => e.SetTile(position, tile)).Throws(new InvalidOperationException()); var mask = Mock.Of <Mask>(m => !m.Test(extent, It.IsAny <Vector>())); var maskedExtent = new MaskedExtent(extent, mask); Assert.That(!maskedExtent.SetTile(position, tile)); }
/// <summary> /// Creates a new instance of the <see cref="EditSession" /> class with the specified world, limit, and mask. /// </summary> /// <param name="world">The world to modify, which must not be <c>null</c>.</param> /// <param name="limit">The limit on the number of tiles that can be set.</param> /// <param name="mask">The mask to test, which must not be <c>null</c>.</param> /// <exception cref="ArgumentNullException"> /// Either <paramref name="world" /> or <paramref name="mask" /> is <c>null</c>. /// </exception> public static EditSession Create([NotNull] World world, int limit, [NotNull] Mask mask) { if (world == null) { throw new ArgumentNullException(nameof(world)); } if (mask == null) { throw new ArgumentNullException(nameof(mask)); } var changeSet = new ChangeSet(); Extent extent = new LoggedExtent(world, changeSet); extent = new LimitedExtent(extent, limit); extent = new MaskedExtent(extent, mask); return(new EditSession(extent, world, changeSet)); }