diff --git a/erpnext/schools/doctype/program/test_program.js b/erpnext/schools/doctype/program/test_program.js
index 16bc932..a14fe97 100644
--- a/erpnext/schools/doctype/program/test_program.js
+++ b/erpnext/schools/doctype/program/test_program.js
@@ -2,7 +2,7 @@
 QUnit.module('schools');
 
 QUnit.test('Test: Program', function(assert){
-	assert.expect(11);
+	assert.expect(6);
 	let done = assert.async();
 	let fee_structure_code;
 	frappe.run_serially([
@@ -21,45 +21,6 @@
 			]);
 		},
 
-		() => cur_frm.save(),
-		// Setting up Fee Category to select in Program doctype
-		() => {
-			return frappe.tests.make('Fee Category', [
-				{category_name: 'Reservation'},
-				{description: 'Special Provision'}
-			]);
-		},
-		// Setting up Fee Structure to be selected in Program doctype
-		() => {
-			return frappe.tests.make('Fee Structure', [
-				{program: 'Standard Test'},
-				{academic_term: '2016-17 (Semester 1)'},
-				{student_category: 'Reservation'},
-				{components: [
-					[
-						{fees_category: 'Reservation'},
-						{amount: 20000}
-					]
-				]}
-			]);
-		},
-		() => {fee_structure_code = frappe.get_route()[2];}, // Storing naming convention of Fee Structure entry
-		() => frappe.set_route('Form', ('Program/Standard Test')), // Routing to our current Program doctype
-
-		() => $('.shaded-section~ .visible-section+ .visible-section .grid-add-row').trigger('click'), // clicking on Add Row button
-		// Storing data that were inter-dependent
-		() => cur_frm.doc.fees[0].academic_term = '2016-17 (Semester 1)',
-		() => cur_frm.doc.fees[0].student_category = 'Reservation',
-		() => cur_frm.doc.fees[0].due_date = '2016-08-20',
-		() => $('.error').trigger('click'),
-		() => $('.bold.input-sm').trigger('focus'),
-		() => frappe.timeout(1),
-		() => $('.bold.input-sm').trigger('focus'),
-		() => $('.bold.input-sm').val(fee_structure_code),
-		() => $('.bold.input-sm').trigger('focus'),
-		() => frappe.timeout(1),
-		() => cur_frm.save(),
-
 		() => {
 			assert.ok(cur_frm.doc.program_name == 'Standard Test');
 			assert.ok(cur_frm.doc.program_code == 'Standard Test');
@@ -67,11 +28,6 @@
 			assert.ok(cur_frm.doc.program_abbreviation == 'Standard Test');
 			assert.ok(cur_frm.doc.courses[0].course == 'Test_Sub');
 			assert.ok(cur_frm.doc.courses[0].required == true);
-			assert.ok(cur_frm.doc.fees[0].academic_term == '2016-17 (Semester 1)');
-			assert.ok(cur_frm.doc.fees[0].fee_structure == fee_structure_code);
-			assert.ok(cur_frm.doc.fees[0].student_category == 'Reservation');
-			assert.ok(cur_frm.doc.fees[0].due_date == '2016-08-20');
-			assert.ok(cur_frm.doc.fees[0].amount == 20000);
 		},
 		() => done()
 	]);
diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.js b/erpnext/schools/doctype/program_enrollment/program_enrollment.js
index d1b703b..8418e85 100644
--- a/erpnext/schools/doctype/program_enrollment/program_enrollment.js
+++ b/erpnext/schools/doctype/program_enrollment/program_enrollment.js
@@ -43,6 +43,7 @@
 	},
 
 	program: function(frm) {
+		frm.events.get_courses(frm);
 		if (frm.doc.program) {
 			frappe.call({
 				method: "erpnext.schools.api.get_fee_schedule",
diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
new file mode 100644
index 0000000..26244ab
--- /dev/null
+++ b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
@@ -0,0 +1,87 @@
+QUnit.module('Admission');
+
+QUnit.test('Make Students', function(assert){
+	assert.expect(0);
+	let done = assert.async();
+	let tasks = [];
+	let loop = [1,2,3,4];
+	let fname;
+
+	frappe.run_serially([
+		// Making School House to be used in this test and later
+		() => frappe.set_route('Form', 'School House/New School House'),
+		() => frappe.timeout(0.5),
+		() => cur_frm.doc.house_name = 'Test_house',
+		() => cur_frm.save(),
+
+		// Making Student Applicant entries
+		() => {
+			loop.forEach(index => {
+				tasks.push(() => {
+					fname = "Fname" + index;
+
+					return frappe.tests.make('Student Applicant', [
+						{first_name: fname},
+						{middle_name: "Mname"},
+						{last_name: "Lname"},
+						{program: "Standard Test"},
+						{student_admission: "2016-17 Admissions"},
+						{date_of_birth: '1995-08-20'},
+						{student_email_id: ('test' + (index+3) + '@testmail.com')},
+						{gender: 'Male'},
+						{student_mobile_number: (9898980000 + index)},
+						{blood_group: 'O+'},
+						{address_line_1: 'Test appt, Test Society,'},
+						{address_line_2: 'Test district, Test city.'},
+						{city: 'Test'},
+						{state: 'Test'},
+						{pincode: '395007'}
+					]);
+				});
+			});
+			return frappe.run_serially(tasks);
+		},
+
+		// Using Program Enrollment Tool to enroll all dummy student at once
+		() => frappe.set_route('Form', 'Program Enrollment Tool'),
+		() => {
+			cur_frm.set_value("get_students_from", "Student Applicants");
+			cur_frm.set_value("academic_year", "2016-17");
+			cur_frm.set_value("program", "Standard Test");
+		},
+		() => frappe.tests.click_button("Get Students"),
+		() => frappe.timeout(1),
+		() => frappe.tests.click_button("Enroll Students"),
+		() => frappe.timeout(1.5),
+		() => frappe.tests.click_button("Close"),
+
+		// Submitting required data for each enrolled Student
+		() => {
+			tasks = [];
+			loop.forEach(index => {
+				tasks.push(
+					() => {fname = "Fname" + index + " Mname Lname";},
+					() => frappe.set_route('List', 'Program Enrollment/List'),
+					() => frappe.timeout(0.6),
+					() => frappe.tests.click_link(fname),
+					() => frappe.timeout(0.4),
+					() => {
+						cur_frm.set_value('program', 'Standard Test');
+						cur_frm.set_value('student_category', 'Reservation');
+						cur_frm.set_value('student_batch_name', 'A');
+						cur_frm.set_value('academic_year', '2016-17');
+						cur_frm.set_value('academic_term', '2016-17 (Semester 1)');
+						cur_frm.set_value('school_house', 'Test_house');
+					},
+					() => cur_frm.save(),
+					() => frappe.timeout(0.5),
+					() => frappe.tests.click_button('Submit'),
+					() => frappe.tests.click_button('Yes'),
+					() => frappe.timeout(0.5)
+				);
+			});
+			return frappe.run_serially(tasks);
+		},
+		() => done()
+	]);
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
index 61f36e2..b983afd 100644
--- a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
+++ b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
@@ -2,14 +2,10 @@
 QUnit.module('schools');
 
 QUnit.test('test student applicant', function(assert){
-	assert.expect(12);
+	assert.expect(11);
 	let done = assert.async();
 	let testing_status;
 	frappe.run_serially([
-		() => frappe.set_route('Form', 'School House/New School House'),
-		() => frappe.timeout(0.5),
-		() => cur_frm.doc.house_name = 'Test_house',
-		() => cur_frm.save(),
 		() => frappe.set_route('List', 'Student Applicant'),
 		() => frappe.timeout(0.5),
 		() => {$(`a:contains("Fname Mname Lname"):visible`)[0].click();},
@@ -97,26 +93,15 @@
 			cur_frm.set_value('academic_year', '2016-17');
 			cur_frm.set_value('academic_term', '2016-17 (Semester 1)');
 			cur_frm.set_value('school_house', 'Test_house');
-			$('a:contains("Fees"):visible').click();
-		},
-		() => frappe.timeout(1),
-		() => {
-			cur_frm.doc.fees[0].student_category = "Reservation";
 		},
 		() => cur_frm.save(),
+
 		// Submitting Program Enrollment form for our Test Student
-		() => frappe.timeout(0.5),
+		() => frappe.timeout(1),
 		() => frappe.tests.click_button('Submit'),
 		() => frappe.tests.click_button('Yes'),
 		() => {
-			testing_status = $('.msgprint').text();
-			assert.ok("Fee Records Created" == (testing_status.substring(0,19)), "Fee record created for enrolled student test");
-		},
-		() => frappe.timeout(0.5),
-		() => frappe.tests.click_button('Close'),
-		() => {
-			testing_status = $('h1').text();
-			assert.ok(testing_status.indexOf('Submitted') != -1, "Program enrollment successfully submitted"); // Checking if the program enrollment entry shows submitted or not
+			assert.ok(cur_frm.doc.docstatus == 1, "Program enrollment successfully submitted");
 		},
 		() => done()
 	]);
diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt
index bc930b8..b08c18e 100644
--- a/erpnext/tests/ui/tests.txt
+++ b/erpnext/tests/ui/tests.txt
@@ -53,5 +53,6 @@
 erpnext/schools/doctype/program/test_program.js
 erpnext/schools/doctype/guardian/test_guardian.js
 erpnext/schools/doctype/student_admission/test_student_admission.js
+erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
 erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js
 erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
\ No newline at end of file
