testing_lab_ws22.md 2.7 KB

Назначение инженера на выполнение заявки (РЧ22)

Разработка библиотеки классов

Описание предметной области

  1. Есть список заявок: дата/время, признак требует выезда специалиста, тип заявки (интернет, мобильная маязь, телевидение, видеонаблюдение), назначенный инженер (может быть пусто для новой заявки)

  2. У сотрудника с ролью инженер есть набор компетенций (интернет, мобильная маязь, телевидение, видеонаблюдение)

  3. Есть график отпусков: id сотрудника, дата с, дата по

Ограничения

  • нельзя назначить заявку на время, если в это время (+-30 минут) инженер занят на другой заявке
  • проверять график отпусков
  • нельзя назначать инженера, если тип заявки не соответствует набору компетенций инженера
  • заявку может создавать только сотрудник с ролью начальник отдела

Спецификация библиотеки

  • название библиотеки: somelib.dll
  • название класса: SomeClass
  • спецификация метода (в формате C#, питонисты делайте по аналогии)

    public boolean someCheck(
        IEnumerable<Application> appList,   // список заявок
        IEnumerable<Vacation> vacationList, // график отпусков
        DateTime appTime,                   // время, на которое хотят оформить заявку
        Employer engineer,                  // на кого делается заявка 
        Employer chief                      // кто пытается назначить
    )
    

Задание

  1. Разработать модели (классы) и наборы данных, необходимые для предметной области
  2. Написать библиотеку классов, реализующую метод проверки возможности назначить инженера на заявку
  3. Разработать тестовые сценарии
  4. Написать unit-тесты для разработанных тестовых сценариев