public void Test_Assign_NullStaff()
        {
            Procedure             procedure     = new Procedure();
            ConcreteProcedureStep procedureStep = new ConcreteProcedureStep(procedure);

            // checking that assigning null has no effect if already null
            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);
            procedureStep.Assign((Staff)null);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);

            // check that assigning null has the effect of un-assiging if already assigned
            Staff performer = new Staff();

            procedureStep.Assign(performer);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNotNull(procedureStep.Scheduling.Performer);

            procedureStep.Assign((Staff)null);
            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);
        }
        public void Test_AssignedStaff()
        {
            Procedure             procedure     = new Procedure();
            ConcreteProcedureStep procedureStep = new ConcreteProcedureStep(procedure);
            Staff performer = new Staff();

            procedureStep.Assign(performer);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNotNull(procedureStep.Scheduling.Performer);
            Assert.AreEqual(performer, procedureStep.AssignedStaff);
        }
        public void Test_Assign()
        {
            Procedure             procedure     = new Procedure();
            ConcreteProcedureStep procedureStep = new ConcreteProcedureStep(procedure);
            Staff performer = new Staff();

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);

            procedureStep.Assign(performer);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNotNull(procedureStep.Scheduling.Performer);
            Assert.IsInstanceOf(typeof(ProcedureStepPerformer), procedureStep.Scheduling.Performer);
            Assert.AreEqual(performer, ((ProcedureStepPerformer)procedureStep.Scheduling.Performer).Staff);
        }
		public void Test_AssignedStaff()
		{
			Procedure procedure = new Procedure();
			ConcreteProcedureStep procedureStep = new ConcreteProcedureStep(procedure);
			Staff performer = new Staff();

			procedureStep.Assign(performer);

			Assert.IsNotNull(procedureStep.Scheduling);
			Assert.IsNotNull(procedureStep.Scheduling.Performer);
			Assert.AreEqual(performer, procedureStep.AssignedStaff);
		}
        public void Test_Assign_NullStaff()
        {
            Procedure procedure = new Procedure();
            ConcreteProcedureStep procedureStep = new ConcreteProcedureStep(procedure);

            // checking that assigning null has no effect if already null
            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);
            procedureStep.Assign((Staff)null);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);

            // check that assigning null has the effect of un-assiging if already assigned
            Staff performer = new Staff();
            procedureStep.Assign(performer);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNotNull(procedureStep.Scheduling.Performer);

            procedureStep.Assign((Staff)null);
            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);
        }
        public void Test_Assign()
        {
            Procedure procedure = new Procedure();
            ConcreteProcedureStep procedureStep = new ConcreteProcedureStep(procedure);
            Staff performer = new Staff();

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNull(procedureStep.Scheduling.Performer);
            
            procedureStep.Assign(performer);

            Assert.IsNotNull(procedureStep.Scheduling);
            Assert.IsNotNull(procedureStep.Scheduling.Performer);
            Assert.IsInstanceOfType(typeof(ProcedureStepPerformer), procedureStep.Scheduling.Performer);
            Assert.AreEqual(performer, ((ProcedureStepPerformer)procedureStep.Scheduling.Performer).Staff);
        }