Commit b4504a8d authored by Gianfranco Harres's avatar Gianfranco Harres

Merge branch 'issue/16' into 'develop'

Issue #16: Adicionada rota de listar amigos

Closes #16

See merge request !19
parents b275310c b1a13099
Pipeline #22313 passed with stage
in 1 minute and 41 seconds
{
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1
}
\ No newline at end of file
......@@ -152,11 +152,10 @@ export class Jogador {
public balance(): string {
return "Balanço da carteira de " + this.name + ": " + this.carteira + "R$";
}
/**
* Retorna os amigos do jogador solicitado
*/
public getAmigos(): string[]{
public getFriends(): string[]{
return this.amigos;
}
}
......@@ -619,7 +619,6 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Teste de sucesso em comprar um jogo.
it("Sucesso em comprar um jogo", (done) => {
request(server)
......@@ -724,4 +723,58 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testa a listagem de amigos com sucesso
it("Sucesso em listar amigos", (done) => {
request(server)
.get("/amigo/0")
.expect(200)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("friends");
expect(res.body.friends).to.be.an("array");
const esperadoAmigos = ["Player2"];
for (let i = 0; i < res.body.friends.length; ++i) {
expect(res.body.friends[i]).to.be.eql(esperadoAmigos[i]);
}
})
.end(done);
});
// Testa a listagem de amigos com sucesso por não ter amigos
it("Falha em listar amigos -- não tem amigos", (done) => {
request(server)
.get("/amigo/1")
.expect(200)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("O jogador não tem amigos");
})
.end(done);
});
// Testa falha em listar amigos
it("Falha em listar amigos -- id inválido", (done) => {
request(server)
.get("/amigo/asadeltaroni")
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Jogador inválido");
})
.end(done);
});
it("Falha em listar amigos -- o jogador não existe no banco", (done) => {
request(server)
.get("/amigo/555777")
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("O jogador não existe no banco");
})
.end(done);
});
});
......@@ -193,7 +193,7 @@ app.put("/jogo/:id", (req: Request, res: express.Response) => {
res.status(400).json({msg: "Busca inapropriada"});
return;
}
if (id > req.db.list("jogos").length){
if (id >= req.db.list("jogos").length){
res.status(400).json({msg: "O jogo não existe no banco"});
return;
}
......@@ -211,7 +211,7 @@ app.delete("/jogo/:id", (req: Request, res: express.Response) => {
res.status(400).json({msg: "Busca inapropriada"});
return;
}
if (id > req.db.list("jogos").length){
if (id >= req.db.list("jogos").length){
res.status(400).json({msg: "O jogo não existe no banco"});
return;
}
......@@ -231,12 +231,12 @@ app.post("/jogador/:idA/:idB", (req: Request, res: express.Response) => {
res.status(400).json({msg: "Segundo jogador inválido"});
return;
}
if (idA > req.db.list("jogadores").length || idB > req.db.list("jogadores").length) {
if (idA >= req.db.list("jogadores").length || idB >= req.db.list("jogadores").length) {
res.status(400);
if (idA > req.db.list("jogadores").length) {
if (idA >= req.db.list("jogadores").length) {
res.json({msg: "Primeiro jogador não existe no banco"});
}
if (idB > req.db.list("jogadores").length) {
if (idB >= req.db.list("jogadores").length) {
res.json({msg: "Segundo jogador não existe no banco"});
}
return;
......@@ -262,12 +262,12 @@ app.delete("/amizade/:idA/:idB", (req: Request, res: express.Response) => {
res.status(400).json({msg: "Segundo jogador inválido"});
return;
}
if (idA > req.db.list("jogadores").length || idB > req.db.list("jogadores").length) {
if (idA >= req.db.list("jogadores").length || idB >= req.db.list("jogadores").length) {
res.status(400);
if (idA > req.db.list("jogadores").length) {
if (idA >= req.db.list("jogadores").length) {
res.json({msg: "Primeiro jogador não existe no banco"});
}
if (idB > req.db.list("jogadores").length) {
if (idB >= req.db.list("jogadores").length) {
res.json({msg: "Segundo jogador não existe no banco"});
}
return;
......@@ -340,5 +340,24 @@ app.post("/compra/:idJogador/:idJogo", (req: Request, res: express.Response) =>
});
// lista amigos
app.get("/amigo/:idA", (req: Request, res: express.Response) => {
const id: number = Math.abs(parseInt(req.params.idA, 10));
if (isNaN(id)) {
res.status(400).json({msg: "Jogador inválido"});
return;
}
if (id >= req.db.list("jogadores").length){
res.status(400).json({msg: "O jogador não existe no banco"});
return;
}
const Player: Jogador = req.db.readplayer(id);
if (!(Player.getFriends().length)){
res.json({msg: "O jogador não tem amigos"});
}
res.json({friends: Player.getFriends()});
});
app.listen(3000);
console.log("Server listening on port 3000");
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 to comment