static void Main() { // instantiate my facades TestFacade peterFacade = new TestFacade(PersonChoice.Peter); TestFacade charlesFacade = new TestFacade(PersonChoice.Charles); TestFacade bothFacade = new TestFacade(PersonChoice.Both); // run some methods: // Peter string name = "Peter"; int age = 15; writeProperties(peterFacade, name, age); // Charles name = "Charles"; age = 20; writeProperties(charlesFacade, name, age); // Both name = "Bothergate"; age = 234; writeProperties(bothFacade, name, age); // wait for user input. Console.ReadLine(); }
public void WaitForOperatorThrowsTimeoutExceptionAfterTimeOut() { var scheduler = new TestFacade(); var synced = new Synced <Exception>(); async CTask Do() { var source = new Source <int>(); var waitedFor = source.WaitFor(5, true, TimeSpan.FromMilliseconds(500)); try { await waitedFor; } catch (Exception e) { synced.Value = e; } } synced.Value.ShouldBeNull(); scheduler.Schedule(() => _ = Do()); var exception = synced.WaitFor(e => e != null); (exception is TimeoutException).ShouldBeTrue(); scheduler.Dispose(); }
public void WaitForOperatorEmitsElementsThrowsExceptionDespiteRestart() { var facade = new TestFacade(); var synced = new Synced <Exception>(); facade.Schedule(() => { var workflow = new WaitForWorkflow(1000); Sync.AfterNext(workflow.EmitEventsToSource, true); Sync.AfterNext(workflow.SetFieldVariableAfterWaitedFor, true); }); Thread.Sleep(100); facade.PersistAndCloseDown(); Thread.Sleep(100); facade.LoadAgain(); Thread.Sleep(3000); synced.Value.ShouldBeNull(); var thrownException = facade.Resolve <WaitForWorkflow>().ThrownException; (thrownException is TimeoutException).ShouldBeTrue(); facade.Dispose(); }
/// <summary> /// Generates flight tickets randomly for each customer. /// </summary> public static IList <Ticket> GetRandomTickets(int ticketsPerCustomer) { TestFacade facade = new TestFacade(); IList <Customer> customers = facade.GetAllCustomers(); IList <Flight> flights = facade.GetAllFlights(); IList <Ticket> tickets = new List <Ticket>(); foreach (Customer customer in customers) { for (int i = 0; i < ticketsPerCustomer; i++) { if (flights[i].DepartureTime < DateTime.Now.AddDays(-1)) { continue; } Ticket ticket = new Ticket { CustomerId = customer.Id, FlightId = flights[i].Id }; tickets.Add(ticket); } } return(tickets); }
public async Task SimpleWaitForWithTimeoutTest() { var facade = new TestFacade(); _ = facade.Schedule(() => { var w = new SimpleWaitForWorkflow(); Roots.Entangle(w); _ = w.Start(); }); await facade.Scheduler.Sync(); var workflow = facade.Resolve <SimpleWaitForWorkflow>(); workflow.ThrownException.ShouldBeNull(); facade.LoadAgain(); await Task.Delay(3000); workflow = facade.Resolve <SimpleWaitForWorkflow>(); workflow.ThrownException.ShouldNotBeNull(); facade.Dispose(); }
public void WaitForOperatorEmitsElementsBeforeTimeOutDespiteRestart() { var facade = new TestFacade(); var synced = new Synced <WaitForWorkflow>(); facade.Schedule(() => { var workflow = new WaitForWorkflow(5000); Sync.AfterNext(workflow.EmitEventsToSource, true); Sync.AfterNext(workflow.SetFieldVariableAfterWaitedFor, true); }); Thread.Sleep(100); facade.PersistAndCloseDown(); Thread.Sleep(100); facade.LoadAgain(); Thread.Sleep(3000); synced.Value.ShouldBeNull(); var w = facade.Resolve <WaitForWorkflow>(); w.Emits.ToArray().Length.ShouldBe(5); facade.Dispose(); }
public TestController(TestFacade testFacade, TopicFacade topicFacade, StudentGroupFacade studentGroupFacade, TestResultFacade testResultFacade) { this.testFacade = testFacade; this.topicFacade = topicFacade; this.studentGroupFacade = studentGroupFacade; this.testResultFacade = testResultFacade; }
private void InitializeDataCount() { Task.Run(() => { TestFacade facade = new TestFacade(); CustomersField.CurrentItemsNumber = facade.GetAllCustomers().Count; AirlinesField.CurrentItemsNumber = facade.GetAllAirlineCompanies().Count; FlightsField.CurrentItemsNumber = facade.GetAllFlights().Count; TicketsField.CurrentItemsNumber = facade.GetAllTickets().Count; }); }
public ResponseData <object> DeleteTest(DeleteTest deleteTest) { ResponseData <object> response = new ResponseData <object>(); TestFacade facade = new TestFacade(); try { facade.Delete(deleteTest); } catch (Exception ex) { ExceptionHandlerFactory.Factory.GetResponseExceptionHandler(response).Handle(ex); } return(response); }
public ResponseData <int> SaveTest(SaveTest saveTest) { ResponseData <int> response = new ResponseData <int>(); TestFacade facade = new TestFacade(); try { response.Data = facade.Save(saveTest); } catch (Exception ex) { ExceptionHandlerFactory.Factory.GetResponseExceptionHandler(response).Handle(ex); } return(response); }
public void WaitForOperatorEmitsElementsBeforeTimeOut() { var testFacade = new TestFacade(); var synced = new Synced <Tuple <Exception, int[]> >(); async CTask Do() { var source = new Source <int>(); var waitedFor = source.WaitFor(5, true, TimeSpan.FromMilliseconds(500)); for (var i = 0; i < 5; i++) { await Sleep.Until(10, false); source.Emit(i); } try { var elements = await waitedFor; synced.Value = Tuple.Create(default(Exception), elements.ToArray()); } catch (Exception e) { synced.Value = Tuple.Create(e, default(int[])); } } synced.Value.ShouldBeNull(); testFacade.Schedule(() => _ = Do()); var(exception, elements) = synced.WaitFor(e => e != null); exception.ShouldBeNull(); elements.Length.ShouldBe(5); for (var i = 0; i < 5; i++) { elements[i].ShouldBe(i); } }
static void writeProperties(TestFacade facade, string name, int age) { Console.WriteLine("Person name: {0} Last Name: {1} Age : {2} ", name, facade.ITester.NamePlusLastName(name), facade.ITester.AgePlus20(age)); }
/// <summary> /// Generates random flights for each airline company. /// Read the comment in the bottom of the file to understand its logics. /// </summary> public static IList <Flight> GetRandomFlights(int flightsPerAirline) { TestFacade facade = new TestFacade(); // Getting all airline companies. IList <AirlineCompany> airlines = facade.GetAllAirlineCompanies(); IList <Flight> flights = new List <Flight>(); Random rnd = new Random(); DateTime startDate; // Defining the initial time of the flights generation. DateTime sDate = DateTime.Now.AddDays(-1); startDate = new DateTime(sDate.Year, sDate.Month, sDate.Day, sDate.Hour, 0, 0); foreach (AirlineCompany airline in airlines) { for (int i = 0; i < flightsPerAirline; i++) { Flight flight = new Flight(); flight.AirlineCompanyId = airline.Id; // Choosing random countries if (i % 2 == 0) { flight.OriginCountryCode = airline.CountryCode; do { flight.DestinationCountryCode = rnd.Next(1, 15); }while (flight.DestinationCountryCode == flight.OriginCountryCode); } else { flight.DestinationCountryCode = airline.CountryCode; do { flight.OriginCountryCode = rnd.Next(1, 15); }while (flight.DestinationCountryCode == flight.OriginCountryCode); } // Generating flight schedule: flight.DepartureTime = startDate.AddMinutes(i * 60); int flightTime = GetFlightDuration(flight.OriginCountryCode, flight.DestinationCountryCode); flight.LandingTime = flight.DepartureTime.AddHours(flightTime); if (rnd.Next(1, 3) == 1) { if (rnd.Next(1, 3) == 1) { flight.LandingTime = flight.LandingTime.AddMinutes(30); } else { flight.LandingTime = flight.LandingTime.AddMinutes(-30); } } // Generating tickets number and ticket price: flight.RemainingTickets = rnd.Next(10, 150); flight.TicketPrice = flightTime * 50 - 1; flights.Add(flight); } } return(flights); }
// Use this for initialization void Start() { TestFacade t = new TestFacade(gameObject); }
/// <summary> /// Generating and adding the data to the database. /// </summary> private void AddItemsToDatabase() { TestFacade facade = new TestFacade(); int customersSum = CustomersField.CurrentItemsNumber + CustomersField.ItemsNum; int airlinesSum = AirlinesField.CurrentItemsNumber + AirlinesField.ItemsNum; int flightsSum = FlightsField.CurrentItemsNumber + FlightsField.ItemsNum; int ticketsSum = TicketsField.CurrentItemsNumber + TicketsField.ItemsNum; if (airlinesSum * flightsSum < TicketsField.ItemsNum) { OnErrorOccured($"Total number of flights ({airlinesSum * flightsSum}) cannot be smaller than tickets per customer number ({TicketsField.ItemsNum})."); return; } else if (customersSum == 0 && TicketsField.ItemsNum > 0) { OnErrorOccured($"Cannot add tickets while there are no customers."); return; } else if (airlinesSum == 0 && FlightsField.ItemsNum > 0) { OnErrorOccured($"Cannot add flights while there are no airline companies."); return; } Task.Run(() => { IsProccessing = true; ProccessingMessageAnimation(); int totalItems = CustomersField.ItemsNum + AirlinesField.ItemsNum + FlightsField.ItemsNum * AirlinesField.ItemsNum + CustomersField.ItemsNum * TicketsField.ItemsNum; int succeeded = 0; if (DeleteDBFirst) { facade.DeleteAllTables(); Log += $"Removed all items from the database.\n"; } try { IList <Customer> customers = DataGenerator.GetRandomCustomersList(CustomersField.ItemsNum); if (CustomersField.ItemsNum > 0) { facade.AddRangeOfCustomers(customers); Log += $"Added {CustomersField.ItemsNum} customers to the database.\n"; succeeded += CustomersField.ItemsNum; CustomersField.CurrentItemsNumber += CustomersField.ItemsNum; } } catch (Exception e) { Log += $"An error has occurred while adding customers to the database. Exception: {e.Message}\n"; } try { IList <AirlineCompany> airlines = DataGenerator.GetRandomAirlineCompaniesList(AirlinesField.ItemsNum); if (AirlinesField.ItemsNum > 0) { facade.AddRangeOfAirlineCompanies(airlines); Log += $"Added {AirlinesField.ItemsNum} airline companies to database.\n"; succeeded += AirlinesField.ItemsNum; AirlinesField.CurrentItemsNumber += AirlinesField.ItemsNum; } } catch (Exception e) { Log += $"An error has occurred while adding airline companies to the database. Exception: {e.Message}\n"; } try { IList <Flight> flights = DataGenerator.GetRandomFlights(FlightsField.ItemsNum); if (FlightsField.ItemsNum > 0) { facade.AddRangeOfFlights(flights); Log += $"Added {FlightsField.ItemsNum} flights for each airline company to the database (Total: {FlightsField.ItemsNum * airlinesSum}).\n"; succeeded += FlightsField.ItemsNum * AirlinesField.ItemsNum; FlightsField.CurrentItemsNumber += FlightsField.ItemsNum; } } catch (Exception e) { Log += $"An error has occurred while adding flights to the database. Exception: {e.Message} # {e.InnerException.Message} # {e.InnerException.InnerException.Message}\n"; } try { IList <Ticket> tickets = DataGenerator.GetRandomTickets(TicketsField.ItemsNum); if (TicketsField.ItemsNum > 0) { facade.AddRangeOfTickets(tickets); Log += $"Added {TicketsField.ItemsNum} tickets for each customer to the database (Total: {TicketsField.ItemsNum * customersSum}).\n"; succeeded += TicketsField.ItemsNum * CustomersField.ItemsNum; TicketsField.CurrentItemsNumber += TicketsField.ItemsNum; } } catch (Exception e) { Log += $"An error has occurred while adding tickets to the database. Exception: {e.Message}\n"; } if (succeeded == totalItems && succeeded > 0) { Log += $"** Added successfully {succeeded} items to the database! (100% success). **\n"; } else if (totalItems > 0) { Log += $"** Added {succeeded} out of {totalItems} items to the database ({(succeeded / totalItems) * 100}% success). **\n"; } else { Log += "No items has been added to the database.\n"; } IsProccessing = false; }); }
protected override void OnInitialize() { _facade = new TestFacade(); _facade.StateChanged += OnFacadeActivated; }