public void TestDoneMethod_ThrowException_FromInLineData(SuitAlterationStatus currentState) { // Arrange var suit = GetSuitWithAlterationStatus(currentState); var stateFactory = new SuitAlterationStateFactory(); var suitAlterationState = SuitAlterationStateFactory.Create(suit); var actualResult = new Exception(); // Act Action act = () => suitAlterationState.Done(); // Asssert Assert.Throws <InvalidStateChangeException>(act); }
private Suit GetSuitWithAlterationStatus(SuitAlterationStatus status) { var suit = new Suit(20, 20, "blue", "cotton"); switch (status) { case SuitAlterationStatus.Default: break; case SuitAlterationStatus.Created: suit = GetSuitWithCreatedAlterationStatust(suit); break; case SuitAlterationStatus.Paid: suit = GetSuitWithCreatedAlterationStatust(suit); suit = GetSuitWithPaiedAlterationStatust(suit); break; case SuitAlterationStatus.Altering: suit = GetSuitWithCreatedAlterationStatust(suit); suit = GetSuitWithPaiedAlterationStatust(suit); suit = GetSuitWithAlteringAlterationStatust(suit); break; case SuitAlterationStatus.Done: suit = GetSuitWithCreatedAlterationStatust(suit); suit = GetSuitWithPaiedAlterationStatust(suit); suit = GetSuitWithAlteringAlterationStatust(suit); suit = GetSuitWithDoneAlterationStatust(suit); break; default: break; } return(suit); }
// TO DO add resource for excpetions public InvalidStateChangeException(SuitAlterationStatus changeFrom, SuitAlterationStatus changeTo) : base($"Can not change state from {changeFrom.GetEnumDescription()} to {changeTo.GetEnumDescription()}") { }
internal void SetStatus(SuitAlterationStatus status) { AlterationStatus = status; }