<commit_before>Feature: <US267> In order to manage students
    As a client application using SLI
    I want to have create, read, update, and delete functionality for a student.

Background: Logged in as a super-user and using the small data set
	Given I am logged in using "demo" "demo1234"
	Given I have access to all students

#### Happy Path 
Scenario: Create a new student JSON
     Given format "application/json"
        And the "name" is "Mister" "John" "Doe"
        And the "birthDate" is "1994-04-04"
        And the "sex" is "Male"
        And the "studentUniqueStateId" is "123456"
    When I navigate to POST "/students/" 
    Then I should receive a return code of 201
       And I should receive a ID for the newly created student
    When I navigate to GET "/students/<'newly created student' ID>"
    Then the "name" should be "Mister" "John" "Doe"
       And the "birthDate" should be "1994-04-04"
       And the "sex" should be "Male"
       And the "studentUniqueStateId" should be "123456"
                
Scenario: Read a student by id
    Given format "application/json"
    When I navigate to GET "/students/<'Alfonso' ID>"
    Then I should receive a return code of 200
        And the "name" should be "Alfonso" "Ora" "Steele"
        And the "sex" should be "Male"
        And the "birthDate" should be "1999-07-12"
        And I should receive a link named "getStudentSectionAssociations" with URI "/student-section-associations/<'Alfonso' ID>"
        And I should receive a link named "getSections" with URI "/student-section-associations/<'Alfonso' ID>/targets"
        And I should receive a link named "getStudentSchoolAssociations" with URI "/student-school-associations/<'Alfonso' ID>"
        And I should receive a link named "getSchools" with URI "/student-school-associations/<'Alfonso' ID>/targets"
        And I should receive a link named "self" with URI "/students/<'Alfonso' ID>"

Scenario: Update an existing student
    Given format "application/json"
    When I navigate to GET "/students/<'Priscilla' ID>"
    Then the "birthDate" should be "2003-01-22"
    When I set the "birthDate" to "2001-01-22"
      And I navigate to PUT "/students/<'Priscilla' ID>"
      Then I should receive a return code of 204
    When I navigate to GET "/students/<'Priscilla' ID>"
     Then the "birthDate" should be "2001-01-22"
        <commit_msg>Added two more associ step defs to student gherkin<commit_after>Feature: <US267> In order to manage students
    As a client application using SLI
    I want to have create, read, update, and delete functionality for a student.

Background: Logged in as a super-user and using the small data set
	Given I am logged in using "demo" "demo1234"
	Given I have access to all students

#### Happy Path 
Scenario: Create a new student JSON
     Given format "application/json"
        And the "name" is "Mister" "John" "Doe"
        And the "birthDate" is "1994-04-04"
        And the "sex" is "Male"
        And the "studentUniqueStateId" is "123456"
    When I navigate to POST "/students/" 
    Then I should receive a return code of 201
       And I should receive a ID for the newly created student
    When I navigate to GET "/students/<'newly created student' ID>"
    Then the "name" should be "Mister" "John" "Doe"
       And the "birthDate" should be "1994-04-04"
       And the "sex" should be "Male"
       And the "studentUniqueStateId" should be "123456"
                
Scenario: Read a student by id
    Given format "application/json"
    When I navigate to GET "/students/<'Alfonso' ID>"
    Then I should receive a return code of 200
        And the "name" should be "Alfonso" "Ora" "Steele"
        And the "sex" should be "Male"
        And the "birthDate" should be "1999-07-12"
        And I should receive a link named "getStudentSectionAssociations" with URI "/student-section-associations/<'Alfonso' ID>"
        And I should receive a link named "getSections" with URI "/student-section-associations/<'Alfonso' ID>/targets"
        And I should receive a link named "getStudentSchoolAssociations" with URI "/student-school-associations/<'Alfonso' ID>"
        And I should receive a link named "getSchools" with URI "/student-school-associations/<'Alfonso' ID>/targets"
        And I should receive a link named "getStudentAssessmentAssociations" with URI "/student-assessment-associations/<'Alfonso' ID>"
        And I should receive a link named "getAssessments" with URI "/student-assessment-associations/<'Alfonso' ID>/targets"
        And I should receive a link named "self" with URI "/students/<'Alfonso' ID>"

Scenario: Update an existing student
    Given format "application/json"
    When I navigate to GET "/students/<'Priscilla' ID>"
    Then the "birthDate" should be "2003-01-22"
    When I set the "birthDate" to "2001-01-22"
      And I navigate to PUT "/students/<'Priscilla' ID>"
      Then I should receive a return code of 204
    When I navigate to GET "/students/<'Priscilla' ID>"
     Then the "birthDate" should be "2001-01-22"
        
{'fraction_non_alphanumeric': 0.09022704837117473, 'fraction_numerical': 0.030009871668311944, 'mean_word_length': 3.072347266881029, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '378437', 'n_tokens_mistral': 1595, 'n_tokens_neox': 1481, 'n_words': 650}