public void Un_evento_di_fuori_servizio_con_parametri_corretti_puo_essere_creato() { var now = DateTime.Now; var evento = new VaInFuoriServizio(this.richiesta, "M1", now, "Fonte", "motivazione"); Assert.That(evento.CodiceMezzo, Is.EqualTo("M1")); Assert.That(evento.Istante, Is.EqualTo(now)); Assert.That(evento.CodiceFonte, Is.EqualTo("Fonte")); Assert.That(evento.Motivazione, Is.EqualTo("motivazione")); }
/// <summary> /// Nello stato <see cref="InRientro" /> l'evento <see cref="VaInFuoriServizio" /> produce /// la transizione nello stato <see cref="FuoriServizio" />. /// </summary> /// <param name="vaInFuoriServizio">Il visitor</param> /// <returns>Lo stato <see cref="FuoriServizio" /></returns> public override IStatoMezzo AcceptVisitor(VaInFuoriServizio vaInFuoriServizio) { return(new FuoriServizio(vaInFuoriServizio.Istante)); }
/// <summary> /// Accetta il visitor e scatena l'implementazione di default che consiste nel sollevare /// una <see cref="WorkflowException" />. Gli stati concreti, implementati nelle classi /// derivate, effettuano l'override dei metodi corrispondenti a transizioni di stato /// ammesse, restituendo lo stato corretto a fronte dell'evento (visitor) di ingresso. /// </summary> /// <param name="vaInFuoriServizio">Il visitor accettato</param> /// <returns>Niente, poiché solleva un'eccezione</returns> public virtual IStatoMezzo AcceptVisitor(VaInFuoriServizio vaInFuoriServizio) { throw new WorkflowException($"Impossibile transire in seguito all'evento {nameof(vaInFuoriServizio)}"); }