View on GitHub

programEngineer

Структура объектов

import SourseData.*
class DataBaseProvider(val sourseData: SourseData) {}

Методы объектов

Объект: БазаДанныхПровайдер

Объект: АутентификацииПровайдер

Объект: АвторизацияПровайдер

Объект: Ролей

Объект: Утилит

Объект: Аргумент

Тестовые данные

Список: Пользователей


1. User(0, "admin", "2b0f98d3c29b6eff9634917feef9fe6b", "salt") // pass: 00000

Список: Ресурсов


1. RoleResource(Roles.READ, "A", 0)
2. RoleResource(Roles.WRITE, "A.B", 0)

Тестовые сценарии

Логин, Пароль

// Code: 0 | Ввести правильные данные
java -jar "main.jar" -login admin -password 00000

// Code: 0 | Ввести правильные данные, но поменять порядок записи
java -jar "main.jar" -password 00000 -login admin
        
// Code: 2 | Ввести неверный формат логина
java -jar "main.jar" -login "?login?" -password 00000

// Code: 3 | Ввести данные не зарегистрированного пользователя
java -jar "main.jar" -login NotRegUser -password NotRegUser
        
// Code: 4 | Ввести верный логин, но неверный пароль
java -jar "main.jar" -login admin -password WrongPassword

Логин, Пароль, Роль, Ресурс

// Code: 0 | Ввести вверные данные для доступа к ресурсу
java -jar "main.jar" -login admin -password 00000 -role READ -resource A

// Code: 0 | Ввести вверные данные для доступа к ресурсу
java -jar "main.jar" -login admin -password 00000 -role WRITE -resource "A.B"

// Code: 5 | Ввести не существующую роль
java -jar "main.jar" -login admin -password 00000 -role UNKNOWNROLE -resource A

// Code: 5 | Ввести не существующий ресурс
java -jar "main.jar" -login admin -password 00000 -role READ -resource NOT_FOUND_RESOURCE

// Code: 6 | Ввести данные ресурса с ролью, к которому нет доступа у пользователя
java -jar "main.jar" -login admin -password 00000 -role EXECUDE -resource A

Логин, Пароль, Роль, Ресурс, Дата начала, Дата завершения, Объем

// Code: 0 | Ввести валидные данные
java -jar "main.jar" -login admin -password 00000 -role READ -resource A -ds "2015-12-31" -de "2016-12-31" -vol 55

// Code: 7 | Дата начала первышает дату завершения
java -jar "main.jar" -login admin -password 00000 -role READ -resource A -ds "2017-12-31" -de "2016-12-31" -vol 55

// Code: 7 | Ввести не верный формат даты
java -jar "main.jar" -login admin -password 00000 -role READ -resource A -ds "time_start" -de "time_end" -vol 55

// Code: 7 | Ввести не верный объем (не является числом)
java -jar "main.jar" login admin -password 00000 -role READ -resource A -ds "2017-12-31" -de "2016-12-31" -vol NOT_VALID -vol 55

Справка

// Code: 0 | Передать параметром -h
java -jar "main.jar" login admin -h

// Code: 0 | Не передавать параметров
java -jar "main.jar" ""

Точка входа в приложение


fun main(args: Array<String>){
    val arguments: Arguments = Urils.parseArguments(args)
    val exitCode: Int = 0

    if (arguments.login != null && arguments.password != null){
        exitCode = AuthenticationProvider.authenticate(arguments.login, arguments.password)

        if (arguments.role != null && arguments.resourse != null){
            // Провести авторизацию
            exitCode = AuthorizeProvider.authorize(arguments.login, arguments.password, arguments.role, arguments.resourse, arguments.ds, arguments.de, arguments.vol)
        }
    }
    
    System.exit(exitCode)
}