public void SetTile_LimitOkay_Succeeded(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 limitedExtent = new LimitedExtent(extent, 1); Assert.That(limitedExtent.SetTile(position, tile)); Mock.Get(extent).Verify(e => e.SetTile(position, tile), Times.Once); }
public void SetTile_LimitPassed_Failed(int x, int y) { var position = new Vector(x, y); var tile = new Tile(); var extent = Mock.Of <Extent>(e => e.SetTile(Vector.Zero, new Tile())); Mock.Get(extent).Setup(e => e.SetTile(position, tile)).Throws(new InvalidOperationException()); var limitedExtent = new LimitedExtent(extent, 1); limitedExtent.SetTile(Vector.Zero, new Tile()); Assert.That(!limitedExtent.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)); }