モック, モデル追加 #73

Merged
Fujimatsu merged 18 commits from feature/mock_2 into main 2024-06-21 01:06:12 +00:00
11 changed files with 364 additions and 0 deletions

View File

@ -0,0 +1,31 @@
package one.nem.kidshift.data;
import one.nem.kidshift.model.ChildModel;
public interface ChildData {
/**
* 子ユーザー情報取得
* @param childId 子ID
* @return ChildModel 子ユーザー情報
*/
ChildModel getChild(String childId);
/**
* 子ユーザー情報更新
* @param child 子ユーザー情報
*/
void updateChild(ChildModel child);
/**
* 子ユーザー追加
* @param child 子ユーザー情報
*/
void addChild(ChildModel child);
/**
* 子ユーザー削除
* @param childId 子ID
*/
void removeChild(String childId);
}

View File

@ -0,0 +1,20 @@
package one.nem.kidshift.data;
import one.nem.kidshift.model.ParentModel;
public interface ParentData {
/**
* 親ユーザー情報取得
* @param parentId 親ID
* @return ParentModel 親ユーザー情報
*/
ParentModel getParent(String parentId);
/**
* 親ユーザー情報更新
* @param parent 親ユーザー情報
*/
void updateParent(ParentModel parent);
}

View File

@ -5,9 +5,46 @@ import java.util.List;
import one.nem.kidshift.model.tasks.TaskItemModel; import one.nem.kidshift.model.tasks.TaskItemModel;
public interface TaskData { public interface TaskData {
// 親側
/** /**
* 存在する全てのタスクを取得する * 存在する全てのタスクを取得する
* @return List<TaskItemModel> タスクリスト * @return List<TaskItemModel> タスクリスト
*/ */
List<TaskItemModel> getTasks(); List<TaskItemModel> getTasks();
/**
* タスクを追加する
* @param task タスク
*/
void addTask(TaskItemModel task);
/**
* タスクを削除する
* @param taskId タスクID
*/
void removeTask(String taskId);
/**
* タスクを更新する
* @param task タスク
*/
void updateTask(TaskItemModel task);
// 子側
/**
* タスクの詳細を取得する
* @param taskId タスクID
* @return TaskItemModel タスク
*/
TaskItemModel getTask(String taskId);
/**
* タスクの完了を記録する
* @param taskId タスクID
* @param childId 子ID
*/
void recordTaskCompletion(String taskId, String childId);
} }

View File

@ -0,0 +1,26 @@
package one.nem.kidshift.data.impl;
import one.nem.kidshift.data.ChildData;
import one.nem.kidshift.model.ChildModel;
public class ChildDataDummyImpl implements ChildData {
@Override
public ChildModel getChild(String childId) {
return null;
}
@Override
public void updateChild(ChildModel child) {
}
@Override
public void addChild(ChildModel child) {
}
@Override
public void removeChild(String childId) {
}
}

View File

@ -0,0 +1,16 @@
package one.nem.kidshift.data.impl;
import one.nem.kidshift.data.ParentData;
import one.nem.kidshift.model.ParentModel;
public class ParentDataDummyImpl implements ParentData {
@Override
public ParentModel getParent(String parentId) {
return null;
}
@Override
public void updateParent(ParentModel parent) {
}
}

View File

@ -43,4 +43,36 @@ public class TaskDataDummyImpl implements TaskData {
// logger.info("Returning tasks: " + tasks); // logger.info("Returning tasks: " + tasks);
return tasks; return tasks;
} }
@Override
public void addTask(TaskItemModel task) {
logger.info("addTask called");
logger.info("Task: " + task);
}
@Override
public void removeTask(String taskId) {
logger.info("removeTask called");
logger.info("Task ID: " + taskId);
}
@Override
public void updateTask(TaskItemModel task) {
logger.info("updateTask called");
logger.info("Task: " + task);
}
@Override
public TaskItemModel getTask(String taskId) {
List<TaskItemModel> tasks = getTasks();
// return random task
return tasks.get(faker.number().numberBetween(0, tasks.size()));
}
@Override
public void recordTaskCompletion(String taskId, String childId) {
logger.info("recordTaskCompletion called");
logger.info("Task ID: " + taskId);
logger.info("Child ID: " + childId);
}
} }

View File

@ -0,0 +1,16 @@
package one.nem.kidshift.data.modules;
import dagger.Binds;
import dagger.Module;
import dagger.hilt.InstallIn;
import dagger.hilt.android.components.FragmentComponent;
import one.nem.kidshift.data.ChildData;
import one.nem.kidshift.data.impl.ChildDataDummyImpl;
@Module
@InstallIn(FragmentComponent.class)
abstract public class ChildDataDummyModule {
@Binds
public abstract ChildData bindChildData(ChildDataDummyImpl childDataDummyImpl);
}

View File

@ -0,0 +1,16 @@
package one.nem.kidshift.data.modules;
import dagger.Binds;
import dagger.Module;
import dagger.hilt.InstallIn;
import dagger.hilt.android.components.FragmentComponent;
import one.nem.kidshift.data.ParentData;
import one.nem.kidshift.data.impl.ParentDataDummyImpl;
@Module
@InstallIn(FragmentComponent.class)
abstract public class ParentDataDummyModule {
@Binds
public abstract ParentData bindParentData(ParentDataDummyImpl parentDataDummyImpl);
}

View File

@ -0,0 +1,50 @@
package one.nem.kidshift.model;
// TODO: parent, childを共通クラスから継承させる
public class ChildModel {
String internalId;
String displayName;
String homeGroupId;
public ChildModel(String internalId, String displayName, String homeGroupId) {
this.internalId = internalId;
this.displayName = displayName;
this.homeGroupId = homeGroupId;
}
public ChildModel(String internalId, String displayName) {
this.internalId = internalId;
this.displayName = displayName;
}
public ChildModel(String internalId) {
this.internalId = internalId;
}
public ChildModel() {
}
public String getInternalId() {
return internalId;
}
public void setInternalId(String internalId) {
this.internalId = internalId;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getHomeGroupId() {
return homeGroupId;
}
public void setHomeGroupId(String homeGroupId) {
this.homeGroupId = homeGroupId;
}
}

View File

@ -0,0 +1,63 @@
package one.nem.kidshift.model;
// TODO: parent, childを共通クラスから継承させる
public class ParentModel {
String internalId;
String displayName;
String homeGroupId;
String email;
public ParentModel(String internalId, String displayName, String homeGroupId, String email) {
this.internalId = internalId;
this.displayName = displayName;
this.homeGroupId = homeGroupId;
this.email = email;
}
public ParentModel(String internalId, String displayName, String homeGroupId) {
this.internalId = internalId;
this.displayName = displayName;
this.homeGroupId = homeGroupId;
}
public ParentModel(String internalId, String displayName) {
this.internalId = internalId;
this.displayName = displayName;
}
// Getter
public String getInternalId() {
return internalId;
}
public String getDisplayName() {
return displayName;
}
public String getHomeGroupId() {
return homeGroupId;
}
public String getEmail() {
return email;
}
// Setter
public void setInternalId(String internalId) {
this.internalId = internalId;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public void setHomeGroupId(String homeGroupId) {
this.homeGroupId = homeGroupId;
}
public void setEmail(String email) {
this.email = email;
}
}

View File

@ -0,0 +1,57 @@
package one.nem.kidshift.model.tasks;
import one.nem.kidshift.model.ChildModel;
public class RewardItemModel {
String internalId;
String displayName;
Integer rewardAmount;
ChildModel assignedChild;
public RewardItemModel(String internalId, String displayName, Integer rewardAmount, ChildModel assignedChild) {
this.internalId = internalId;
this.displayName = displayName;
this.rewardAmount = rewardAmount;
this.assignedChild = assignedChild;
}
public RewardItemModel(String internalId, String displayName, Integer rewardAmount) {
this.internalId = internalId;
this.displayName = displayName;
this.rewardAmount = rewardAmount;
}
// TODO: ChildIdからChildModelを取得できる方法を実装する
public String getInternalId() {
return internalId;
}
public void setInternalId(String internalId) {
this.internalId = internalId;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public Integer getRewardAmount() {
return rewardAmount;
}
public void setRewardAmount(Integer rewardAmount) {
this.rewardAmount = rewardAmount;
}
public ChildModel getAssignedChild() {
return assignedChild;
}
public void setAssignedChild(ChildModel assignedChild) {
this.assignedChild = assignedChild;
}
}