Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

agile-java / AgileJavaAndroid

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Commit b1321304 authored 6 years ago by Paktalin's avatar Paktalin
Browse files
Options
  • Browse Files
  • Download
  • Email Patches
  • Plain Diff

Grading strategy refactoring in Lesson 6

parent 635ac868
Hide whitespace changes
Inline Side-by-side
Showing with 57 additions and 22 deletions
  • app/src/main/java/com/example/paktalin/agilejava/BasicGradingStrategy.java
  • app/src/main/java/com/example/paktalin/agilejava/GradingStrategy.java
  • app/src/main/java/com/example/paktalin/agilejava/HonorsGradingStrategy.java
  • app/src/main/java/com/example/paktalin/agilejava/Student.java
  • app/src/test/java/com/example/paktalin/agilejava/AllTests.java
  • app/src/test/java/com/example/paktalin/agilejava/BasicGradingStrategyTest.java
  • app/src/test/java/com/example/paktalin/agilejava/HonorsGradingStrategyTest.java
app/src/main/java/com/example/paktalin/agilejava/BasicGradingStrategy.java
View file @ b1321304
......@@ -4,15 +4,9 @@ package com.example.paktalin.agilejava;
* Created by Paktalin on 18/05/2018.
*/
class BasicGradingStrategy implements GradingStrategy {
@Override
class BasicGradingStrategy {
public int getGradePointsFor(Student.Grade grade) {
switch(grade) {
case A: return 4;
case B: return 3;
case C: return 2;
case D: return 1;
default: return 0;
}
return grade.getPoints();
}
}
This diff is collapsed. Click to expand it.
app/src/main/java/com/example/paktalin/agilejava/GradingStrategy.java deleted 100644 → 0
View file @ 635ac868
package com.example.paktalin.agilejava;
/**
* Created by Paktalin on 18/05/2018.
*/
interface GradingStrategy {
int getGradePointsFor(Student.Grade grade);
}
This diff is collapsed. Click to expand it.
app/src/main/java/com/example/paktalin/agilejava/HonorsGradingStrategy.java
View file @ b1321304
......@@ -4,10 +4,11 @@ package com.example.paktalin.agilejava;
* Created by Paktalin on 18/05/2018.
*/
class HonorsGradingStrategy implements GradingStrategy {
class HonorsGradingStrategy extends BasicGradingStrategy {
@Override
public int getGradePointsFor(Student.Grade grade) {
int points = new BasicGradingStrategy().getGradePointsFor(grade);
int points = super.getGradePointsFor(grade);
if (points != 0)
points++;
return points;
......
This diff is collapsed. Click to expand it.
app/src/main/java/com/example/paktalin/agilejava/Student.java
View file @ b1321304
......@@ -14,9 +14,18 @@ class Student {
static final String IN_STATE = "CO";
private String state = "";
private List<Grade> grades = new ArrayList<>();
private GradingStrategy gradingStrategy = new BasicGradingStrategy();
private BasicGradingStrategy gradingStrategy = new BasicGradingStrategy();
enum Grade {A, B, C, D, F};
enum Grade {
A(4), B(3), C(2), D(1), F(0);
private int points;
Grade(int points) {
this.points = points;
}
int getPoints() {
return points;
}
}
Student(String name) {
this.name = name;
......
This diff is collapsed. Click to expand it.
app/src/test/java/com/example/paktalin/agilejava/AllTests.java
View file @ b1321304
......@@ -17,6 +17,8 @@ public class AllTests extends TestSuite {
suite.addTestSuite(CourseReportTest.class);
suite.addTestSuite(LanguageTests.class);
suite.addTestSuite(ReportCardTest.class);
suite.addTestSuite(BasicGradingStrategyTest.class);
suite.addTestSuite(HonorsGradingStrategyTest.class);
return suite;
}
}
This diff is collapsed. Click to expand it.
app/src/test/java/com/example/paktalin/agilejava/BasicGradingStrategyTest.java 0 → 100644
View file @ b1321304
package com.example.paktalin.agilejava;
import junit.framework.TestCase;
/**
* Created by Paktalin on 28/05/2018.
*/
public class BasicGradingStrategyTest extends TestCase {
public void testGetGradePoints() {
BasicGradingStrategy strategy = new BasicGradingStrategy();
assertEquals(4, strategy.getGradePointsFor(Student.Grade.A));
assertEquals(3, strategy.getGradePointsFor(Student.Grade.B));
assertEquals(2, strategy.getGradePointsFor(Student.Grade.C));
assertEquals(1, strategy.getGradePointsFor(Student.Grade.D));
assertEquals(0, strategy.getGradePointsFor(Student.Grade.F));
}
}
This diff is collapsed. Click to expand it.
app/src/test/java/com/example/paktalin/agilejava/HonorsGradingStrategyTest.java 0 → 100644
View file @ b1321304
package com.example.paktalin.agilejava;
import junit.framework.TestCase;
/**
* Created by Paktalin on 28/05/2018.
*/
public class HonorsGradingStrategyTest extends TestCase {
public void testGetGradePoints() {
HonorsGradingStrategy strategy = new HonorsGradingStrategy();
assertEquals(5, strategy.getGradePointsFor(Student.Grade.A));
assertEquals(4, strategy.getGradePointsFor(Student.Grade.B));
assertEquals(3, strategy.getGradePointsFor(Student.Grade.C));
assertEquals(2, strategy.getGradePointsFor(Student.Grade.D));
assertEquals(0, strategy.getGradePointsFor(Student.Grade.F));
}
}
This diff is collapsed. Click to expand it.
  • Write
  • Preview
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment