public void RemoveTileEntity_Succeeded_WasLogged(int x, int y) { var tileEntity = Mock.Of <ITileEntity>(e => e.Position == new Vector(x, y)); var extent = Mock.Of <Extent>(e => e.RemoveTileEntity(tileEntity)); var changeSet = new ChangeSet(); var loggedExtent = new LoggedExtent(extent, changeSet); Assert.That(loggedExtent.RemoveTileEntity(tileEntity)); Assert.That(changeSet.Undo(extent), Is.EqualTo(1)); }
public void RemoveTileEntity_Failed_WasNotLogged(int x, int y) { var tileEntity = Mock.Of <ITileEntity>(e => e.Position == new Vector(x, y)); var extent = Mock.Of <Extent>(e => !e.RemoveTileEntity(tileEntity)); var changeSet = new ChangeSet(); var loggedExtent = new LoggedExtent(extent, changeSet); Assert.That(!loggedExtent.RemoveTileEntity(tileEntity)); Assert.That(changeSet.Undo(extent), Is.Zero); }
public void SetTile_Succeeded_WasLogged(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 changeSet = new ChangeSet(); var loggedExtent = new LoggedExtent(extent, changeSet); Assert.That(loggedExtent.SetTile(position, tile)); Assert.That(changeSet.Undo(extent), Is.EqualTo(1)); }
public void SetTile_Failed_WasNotLogged(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 changeSet = new ChangeSet(); var loggedExtent = new LoggedExtent(extent, changeSet); Assert.That(!loggedExtent.SetTile(position, tile)); Assert.That(changeSet.Undo(extent), Is.Zero); }
/// <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)); }