public void TestDispersing() { var stowage = new Stowage(); stowage.StowingMode(); stowage.Stow(LocalMessage("1")); stowage.Stow(LocalMessage("2")); stowage.Stow(LocalMessage("3")); Assert.True(stowage.HasMessages); stowage.DispersingMode(); Assert.Equal("1", stowage.SwapWith <object>(LocalMessage("4")).Representation); Assert.Equal("2", stowage.SwapWith <object>(LocalMessage("5")).Representation); Assert.Equal("3", stowage.SwapWith <object>(LocalMessage("6")).Representation); Assert.True(stowage.HasMessages); Assert.True(stowage.IsDispersing); Assert.NotNull(stowage.Head); Assert.True(stowage.IsDispersing); Assert.NotNull(stowage.Head); Assert.True(stowage.IsDispersing); Assert.NotNull(stowage.Head); Assert.True(stowage.IsDispersing); Assert.Null(stowage.Head); Assert.False(stowage.IsDispersing); }
protected internal Environment( Stage stage, IAddress address, Definition definition, Actor?parent, IMailbox mailbox, ISupervisor?maybeSupervisor, ILogger logger) { Stage = stage ?? throw new ArgumentNullException(nameof(stage)); Address = address ?? throw new ArgumentNullException(nameof(address)); Definition = definition ?? throw new ArgumentNullException(nameof(definition)); if (address.Id != World.PrivateRootId) { Parent = parent ?? throw new ArgumentNullException(nameof(parent)); } else { Parent = parent; } Mailbox = mailbox ?? throw new ArgumentNullException(nameof(mailbox)); MaybeSupervisor = maybeSupervisor; FailureMark = new FailureMark(); Logger = logger; Children = new ConcurrentDictionary <long, Actor>(); ProxyCache = new Dictionary <Type, object>(1); Stowage = new Stowage(); _stowageOverrides = null; Suspended = new Stowage(); _secured = new AtomicBoolean(false); _stopped = new AtomicBoolean(false); }
public void TestHead() { var stowage = new Stowage(); stowage.StowingMode(); stowage.Stow <object>(LocalMessage()); stowage.Stow <object>(LocalMessage()); stowage.Stow <object>(LocalMessage()); Assert.NotNull(stowage.Head); Assert.NotNull(stowage.Head); Assert.NotNull(stowage.Head); Assert.Null(stowage.Head); }
public void TestReset() { var stowage = new Stowage(); stowage.StowingMode(); Assert.True(stowage.IsStowing); Assert.False(stowage.IsDispersing); stowage.Stow <object>(LocalMessage()); stowage.Stow <object>(LocalMessage()); stowage.Stow <object>(LocalMessage()); Assert.True(stowage.HasMessages); stowage.Reset(); Assert.False(stowage.HasMessages); Assert.False(stowage.IsStowing); Assert.False(stowage.IsDispersing); }
public void TestStowHasMessages() { IMessage _; var stowage = new Stowage(); stowage.StowingMode(); stowage.Stow <object>(LocalMessage()); Assert.True(stowage.HasMessages); _ = stowage.Head; Assert.False(stowage.HasMessages); stowage.Stow <object>(LocalMessage()); stowage.Stow <object>(LocalMessage()); Assert.True(stowage.HasMessages); _ = stowage.Head; Assert.True(stowage.HasMessages); _ = stowage.Head; Assert.False(stowage.HasMessages); }