public void CanEnumerateByTypeProgramBreakpoints() { var breakpoint1 = new ProgramAddressBreakpoint(0x1234); var breakpoint2 = new ProgramOpcodeBreakpoint((byte)OPCODE.PHA); var breakpoint3 = new ProgramAddressBreakpoint(0x0123); _cpu.AddBreakpoint(breakpoint1); _cpu.AddBreakpoint(breakpoint2); _cpu.AddBreakpoint(breakpoint3); int count = 0; var enumerator = ((IEnumerable)(_cpu.Breakpoints)).GetEnumerator(); while (true) { if (!enumerator.MoveNext()) { break; } Assert.IsTrue(enumerator.Current is ProgramBreakpoint); count++; } Assert.AreEqual(3, count); }
public void ProgramBreakpointsIndexOfFindsBreakpoints() { var breakpoint1 = new ProgramAddressBreakpoint(0x1234); var breakpoint2 = new ProgramOpcodeBreakpoint((byte)OPCODE.PHA); var breakpoint3 = new ProgramAddressBreakpoint(0x0123); _cpu.AddBreakpoint(breakpoint1); _cpu.AddBreakpoint(breakpoint2); Assert.AreEqual(0, _cpu.Breakpoints.IndexOf(breakpoint1)); Assert.AreEqual(1, _cpu.Breakpoints.IndexOf(breakpoint2)); Assert.AreEqual(-1, _cpu.Breakpoints.IndexOf(breakpoint3)); }
public void CanRemoveAtMemoryBreakpoint() { var breakpoint1 = new ProgramAddressBreakpoint(0x1234); var breakpoint2 = new ProgramOpcodeBreakpoint((byte)OPCODE.PHA); var breakpoint3 = new ProgramAddressBreakpoint(0x0123); _cpu.AddBreakpoint(breakpoint1); _cpu.AddBreakpoint(breakpoint2); _cpu.AddBreakpoint(breakpoint3); _cpu.Breakpoints.RemoveAt(1); Assert.AreEqual(2, _cpu.Breakpoints.Count); Assert.IsTrue(_cpu.Breakpoints[0] is ProgramAddressBreakpoint); Assert.IsTrue(_cpu.Breakpoints[1] is ProgramAddressBreakpoint); }
public void CanForEachProgramBreakpoints() { var breakpoint1 = new ProgramAddressBreakpoint(0x1234); var breakpoint2 = new ProgramOpcodeBreakpoint((byte)OPCODE.PHA); var breakpoint3 = new ProgramAddressBreakpoint(0x0123); _cpu.AddBreakpoint(breakpoint1); _cpu.AddBreakpoint(breakpoint2); _cpu.AddBreakpoint(breakpoint3); int count = 0; foreach (var breakpoint in _cpu.Breakpoints) { Assert.IsTrue(breakpoint is ProgramBreakpoint); count++; } Assert.AreEqual(3, count); }
public void CantInsertProgramBreakpoint() { var breakpoint1 = new ProgramAddressBreakpoint(0x1234); var breakpoint2 = new ProgramOpcodeBreakpoint((byte)OPCODE.PHA); var breakpoint3 = new ProgramAddressBreakpoint(0x0123); _cpu.AddBreakpoint(breakpoint1); _cpu.AddBreakpoint(breakpoint2); try { _cpu.Breakpoints.Insert(1, breakpoint3); } catch (NotImplementedException) { Assert.Pass(); } Assert.Fail(); }