diff --git a/pom.xml b/pom.xml
index 5a9e650..07907ec 100755
--- a/pom.xml
+++ b/pom.xml
@@ -22,10 +22,9 @@
6.5.0
-
- org.jsoup
- jsoup
- 1.7.3
+ org.json
+ json
+ 20230227
org.springframework.boot
diff --git a/src/main/java/net/dev4any1/tbot/App.java b/src/main/java/net/dev4any1/tbot/App.java
index 85bfd68..d3755eb 100755
--- a/src/main/java/net/dev4any1/tbot/App.java
+++ b/src/main/java/net/dev4any1/tbot/App.java
@@ -1,5 +1,6 @@
package net.dev4any1.tbot;
+import java.util.Date;
import java.util.Scanner;
import org.slf4j.Logger;
@@ -12,7 +13,6 @@
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
-import net.dev4any1.tbot.dao.SubscriberRepository;
import net.dev4any1.tbot.service.BotService;
@Configuration
@@ -22,14 +22,12 @@ public class App implements CommandLineRunner {
private static final Logger log = LoggerFactory.getLogger(App.class);
- @Autowired
- SubscriberRepository repo;
@Autowired
BotService bs;
@Override
public void run(String... args) throws Exception {
- log.info("starting tbot for " + repo.count() + " subscribers");
+ log.info("starting tbot at " + new Date());
bs.serviceDefault();
try (Scanner scan = new Scanner(System.in)) {
while (scan.hasNext()) {
diff --git a/src/main/java/net/dev4any1/tbot/bot/Bot.java b/src/main/java/net/dev4any1/tbot/bot/Bot.java
index f5d412c..55071a8 100755
--- a/src/main/java/net/dev4any1/tbot/bot/Bot.java
+++ b/src/main/java/net/dev4any1/tbot/bot/Bot.java
@@ -1,75 +1,79 @@
package net.dev4any1.tbot.bot;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
-import net.dev4any1.tbot.dao.PollRepository;
-import net.dev4any1.tbot.model.PollUpdate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.telegram.telegrambots.bots.DefaultBotOptions;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.methods.polls.SendPoll;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.api.objects.Update;
-import org.telegram.telegrambots.meta.api.objects.polls.PollOption;
-import org.telegram.telegrambots.meta.api.objects.polls.Poll;
-import org.telegram.telegrambots.meta.api.objects.polls.PollAnswer;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
+import net.dev4any1.tbot.dao.PollRepository;
import net.dev4any1.tbot.dao.UpdateRepository;
-import net.dev4any1.tbot.model.UpdateDoc;
+import net.dev4any1.tbot.model.PollUpdateEntity;
+import net.dev4any1.tbot.model.UpdateEntity;
public class Bot extends TelegramLongPollingBot {
private static final Logger log = LoggerFactory.getLogger(Bot.class);
+ private static final String BOT_WELCOME = "Привет! Я бот для опросов. Чтобы начать опрос, введите команду /poll.";
+ private static final String POLL_QUESTION = "Какие есть варианты?";
+ private static final String POLL_QUESTION_ANONYM = "Какие есть варианты анонимно?";
+ private static final List POLL_OPTIONS = List.of("Я", "В костюме", "Без костюма");
+
private String botName;
- private UpdateRepository upr;
+ private UpdateRepository updateRepository;
private PollRepository pollRepository;
- public Bot(DefaultBotOptions options, String botToken, String name, UpdateRepository upr, PollRepository pollRepository) {
+ public Bot(DefaultBotOptions options, String botToken, String name, UpdateRepository updateRepository,
+ PollRepository pollRepository) {
super(options, botToken);
this.botName = name;
- this.upr = upr;
+ this.updateRepository = updateRepository;
this.pollRepository = pollRepository;
}
@Override
public void onUpdateReceived(Update update) {
log.debug("update " + update.getClass() + " toStr: " + update.toString());
-
+ // saving any update
+ updateRepository.insert(new UpdateEntity(Helper.getJson(update).get()));
+ // saving non anonymous poll reply
if (update.hasPollAnswer()) {
- pollRepository.save(new PollUpdate(update.getPollAnswer().getPollId(), update.getPollAnswer().toString()));
+ pollRepository.save(new PollUpdateEntity(update.getPollAnswer().getPollId(),
+ Helper.getJson(update.getPollAnswer()).get()));
}
+ // saving anonymous poll reply
if (update.hasPoll()) {
- pollRepository.save(new PollUpdate(update.getPoll().getId(), update.getPoll().toString()));
+ pollRepository.save(new PollUpdateEntity(update.getPoll().getId(), Helper.getJson(update.getPoll()).get()));
}
+ // handling command
if (update.hasMessage() && update.getMessage().hasText()) {
String messageText = update.getMessage().getText();
String chatId = update.getMessage().getChatId().toString();
- System.out.println("ChatID: "+chatId);
+ System.out.println("ChatID: " + chatId);
switch (messageText) {
- case "/start":
- sendTextMessage(chatId, "Привет! Я бот для опросов. Чтобы начать опрос, введите команду /poll.");
- break;
- case "/poll":
- sendPoll(chatId, "Какие есть варианты?",
- List.of("Я", "В костюме", "Без костюма"), false);
- break;
- case "/pollAnswer":
- sendPoll(chatId, "Какие есть варианты анонимно?",
- List.of("Я", "В костюме", "Без костюма"), true);
- break;
- case "/stat":
- String statistic = pollRepository.findAll()
- .stream()
- .map(PollUpdate::getPoll)
+ case "/start":
+ sendTextMessage(chatId, BOT_WELCOME);
+ break;
+ case "/poll":
+ sendPoll(chatId, POLL_QUESTION, POLL_OPTIONS, false);
+ break;
+ case "/pollAnonym":
+ sendPoll(chatId, POLL_QUESTION_ANONYM, POLL_OPTIONS, true);
+ break;
+ case "/stats":
+ String statistic = pollRepository.findAll().stream().map(PollUpdateEntity::getPoll)
.collect(Collectors.joining(", "));
- sendTextMessage(chatId, statistic);
- break;
+ sendTextMessage(chatId, statistic);
+ break;
}
}
}
@@ -106,16 +110,6 @@ public Map getPollResults() {
return null;
}
- public String getGooAnswer(String query) {
- Collection searches = Helper.Searcher.search(query, 1);
- if (!searches.isEmpty()) {
- SearchResult sr = searches.iterator().next();
- return "[" + sr.getTitle() + "](" + sr.getLink() + ")";
- } else {
- return "uh oh..";
- }
- }
-
@Override
public String getBotUsername() {
return botName;
diff --git a/src/main/java/net/dev4any1/tbot/bot/Helper.java b/src/main/java/net/dev4any1/tbot/bot/Helper.java
index 7255bce..313d23a 100755
--- a/src/main/java/net/dev4any1/tbot/bot/Helper.java
+++ b/src/main/java/net/dev4any1/tbot/bot/Helper.java
@@ -1,61 +1,20 @@
package net.dev4any1.tbot.bot;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
+import java.io.Serializable;
+import java.util.Optional;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.select.Elements;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.json.JSONException;
+import org.json.JSONObject;
public class Helper {
- public static class Searcher {
-
- private static final Logger log = LoggerFactory.getLogger(Searcher.class);
-
- public static Collection search(String query, int resultCount) {
- try {
- query = URLEncoder.encode(query, StandardCharsets.UTF_8.toString());
- Document document = Jsoup.connect("http://www.google.com/search?q=" + query + "&num=" + resultCount)
- .header("Accept-Language", "en-US,en;q=0.5")
- .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0").get();
- return parseLinks(document);
- } catch (Exception e) {
- log.error("wtf jsoup: ", e);
- return Collections.emptyList();
- }
- }
-
- public static Collection parseLinks(final Document doc) throws Exception {
- Map links = new HashMap();
- Element main = doc.getElementById("main");
- Elements searchResults = main.select("div");
- for (Element result : searchResults) {
- String title = result.select("h3").text();
- String link = normalizeLink(result.select("a").attr("href"));
- String description = result.select("div").text();
- if (!title.isEmpty() && !link.isEmpty() && !description.isEmpty() && !links.containsKey(link)) {
- SearchResult serchResult = new SearchResult().withDescribtion(description).withLink(link)
- .withTitle(title);
- links.put(link, serchResult);
- System.out.println(serchResult);
- }
- }
- return links.values();
- }
-
- private static String normalizeLink(String link) {
- if (!link.isEmpty()) {
- link = (!link.startsWith("/url?q=http")) ? "" : link.substring(7, link.indexOf("&sa="));
- }
- return link;
+ public static Optional getJson(Serializable entity) {
+ try {
+ return Optional.of(new JSONObject(entity).toString(1));
+ } catch (JSONException e) {
+ e.printStackTrace();
}
+ return Optional.empty();
}
+
}
\ No newline at end of file
diff --git a/src/main/java/net/dev4any1/tbot/bot/SearchResult.java b/src/main/java/net/dev4any1/tbot/bot/SearchResult.java
deleted file mode 100755
index f50c681..0000000
--- a/src/main/java/net/dev4any1/tbot/bot/SearchResult.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package net.dev4any1.tbot.bot;
-
-import java.util.Objects;
-
-public class SearchResult {
- private String title;
- private String link;
- private String describtion;
-
- public SearchResult withTitle(String title) {
- this.title = title;
- return this;
- }
-
- public SearchResult withLink(String link) {
- this.link = link;
- return this;
- }
-
- public SearchResult withDescribtion(String describtion) {
- this.describtion = describtion;
- return this;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getLink() {
- return link;
- }
-
- public void setLink(String link) {
- this.link = link;
- }
-
- public String getDescribtion() {
- return describtion;
- }
-
- public void setDescribtion(String describtion) {
- this.describtion = describtion;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(describtion, link, title);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- SearchResult other = (SearchResult) obj;
- return Objects.equals(describtion, other.describtion) && Objects.equals(link, other.link)
- && Objects.equals(title, other.title);
- }
-
- @Override
- public String toString() {
- return "SearchResult [title=" + title + ", link=" + link + ", describtion=" + describtion + "]";
- }
-
-}
diff --git a/src/main/java/net/dev4any1/tbot/dao/PollRepository.java b/src/main/java/net/dev4any1/tbot/dao/PollRepository.java
old mode 100644
new mode 100755
index 5ea50de..22ad28b
--- a/src/main/java/net/dev4any1/tbot/dao/PollRepository.java
+++ b/src/main/java/net/dev4any1/tbot/dao/PollRepository.java
@@ -1,13 +1,11 @@
package net.dev4any1.tbot.dao;
-import net.dev4any1.tbot.model.PollUpdate;
-import net.dev4any1.tbot.model.Subscriber;
-import org.springframework.data.mongodb.repository.MongoRepository;
-
import java.util.List;
-public interface PollRepository extends MongoRepository {
+import org.springframework.data.mongodb.repository.MongoRepository;
+
+import net.dev4any1.tbot.model.PollUpdateEntity;
- public PollUpdate findByPollId(String pollId);
- public List getAllByPollId(String pollId);
+public interface PollRepository extends MongoRepository {
+ public List findByPollId(String pollId);
}
diff --git a/src/main/java/net/dev4any1/tbot/dao/SubscriberRepository.java b/src/main/java/net/dev4any1/tbot/dao/SubscriberRepository.java
deleted file mode 100755
index 1a2db27..0000000
--- a/src/main/java/net/dev4any1/tbot/dao/SubscriberRepository.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.dev4any1.tbot.dao;
-
-import org.springframework.data.mongodb.repository.MongoRepository;
-
-import net.dev4any1.tbot.model.Subscriber;
-
-public interface SubscriberRepository extends MongoRepository {
- public Subscriber findByGsmNo(String gsmNo);
-}
diff --git a/src/main/java/net/dev4any1/tbot/dao/UpdateRepository.java b/src/main/java/net/dev4any1/tbot/dao/UpdateRepository.java
index 9d74043..23c6405 100755
--- a/src/main/java/net/dev4any1/tbot/dao/UpdateRepository.java
+++ b/src/main/java/net/dev4any1/tbot/dao/UpdateRepository.java
@@ -1,10 +1,9 @@
package net.dev4any1.tbot.dao;
-import net.dev4any1.tbot.model.PollUpdate;
import org.springframework.data.mongodb.repository.MongoRepository;
-import net.dev4any1.tbot.model.UpdateDoc;
+import net.dev4any1.tbot.model.UpdateEntity;
-public interface UpdateRepository extends MongoRepository {
+public interface UpdateRepository extends MongoRepository {
}
diff --git a/src/main/java/net/dev4any1/tbot/model/PollUpdate.java b/src/main/java/net/dev4any1/tbot/model/PollUpdateEntity.java
old mode 100644
new mode 100755
similarity index 84%
rename from src/main/java/net/dev4any1/tbot/model/PollUpdate.java
rename to src/main/java/net/dev4any1/tbot/model/PollUpdateEntity.java
index 277d5a3..686b366
--- a/src/main/java/net/dev4any1/tbot/model/PollUpdate.java
+++ b/src/main/java/net/dev4any1/tbot/model/PollUpdateEntity.java
@@ -9,21 +9,21 @@
import java.io.Serializable;
import java.util.Objects;
-public class PollUpdate implements Serializable {
- private static final long serialVersionUID = PollUpdate.class.getName().hashCode();
+public class PollUpdateEntity implements Serializable {
+ private static final long serialVersionUID = PollUpdateEntity.class.getName().hashCode();
@Id
@MongoId
private String id;
- @Indexed(unique = true)
+ @Indexed(unique = false)
@Field(targetType = FieldType.STRING, write = Field.Write.NON_NULL)
private String pollId;
@Field(targetType = FieldType.STRING, write = Field.Write.NON_NULL)
private String poll;
- public PollUpdate(String pollId, String poll) {
+ public PollUpdateEntity(String pollId, String poll) {
this.pollId = pollId;
this.poll = poll;
}
@@ -63,7 +63,7 @@ public boolean equals(Object obj) {
return false;
if (getClass() != obj.getClass())
return false;
- PollUpdate other = (PollUpdate) obj;
+ PollUpdateEntity other = (PollUpdateEntity) obj;
return Objects.equals(id, other.id) && Objects.equals(poll, other.poll) && Objects.equals(pollId, other.pollId);
}
diff --git a/src/main/java/net/dev4any1/tbot/model/Subscriber.java b/src/main/java/net/dev4any1/tbot/model/Subscriber.java
deleted file mode 100755
index 64b49d2..0000000
--- a/src/main/java/net/dev4any1/tbot/model/Subscriber.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.dev4any1.tbot.model;
-
-import java.io.Serializable;
-import java.util.Objects;
-
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.index.Indexed;
-import org.springframework.data.mongodb.core.mapping.Field;
-import org.springframework.data.mongodb.core.mapping.Field.Write;
-import org.springframework.data.mongodb.core.mapping.FieldType;
-import org.springframework.data.mongodb.core.mapping.MongoId;
-import org.telegram.telegrambots.meta.api.objects.User;
-
-public class Subscriber extends User implements Serializable{
-
- private static final long serialVersionUID = Subscriber.class.getName().hashCode();
-
- @Id
- @MongoId
- private String id;
-
- @Indexed(unique = true)
- @Field(targetType = FieldType.STRING, write = Write.NON_NULL)
- private String gsmNo;
-
- public Subscriber(String gsmNo) {
- this.gsmNo = gsmNo;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(gsmNo, id);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Subscriber other = (Subscriber) obj;
- return Objects.equals(gsmNo, other.gsmNo) && Objects.equals(id, other.id);
- }
-
- @Override
- public String toString() {
- return "Subscriber [id=" + id + ", gsmNo=" + gsmNo + "]";
- }
-
-}
diff --git a/src/main/java/net/dev4any1/tbot/model/UpdateDoc.java b/src/main/java/net/dev4any1/tbot/model/UpdateEntity.java
similarity index 80%
rename from src/main/java/net/dev4any1/tbot/model/UpdateDoc.java
rename to src/main/java/net/dev4any1/tbot/model/UpdateEntity.java
index 13b8559..5c86c81 100755
--- a/src/main/java/net/dev4any1/tbot/model/UpdateDoc.java
+++ b/src/main/java/net/dev4any1/tbot/model/UpdateEntity.java
@@ -10,19 +10,18 @@
import org.springframework.data.mongodb.core.mapping.FieldType;
import org.springframework.data.mongodb.core.mapping.MongoId;
-public class UpdateDoc implements Serializable {
+public class UpdateEntity implements Serializable {
- private static final long serialVersionUID = UpdateDoc.class.getName().hashCode();
+ private static final long serialVersionUID = UpdateEntity.class.getName().hashCode();
@Id
@MongoId
private String id;
- @Indexed(unique = true)
@Field(targetType = FieldType.STRING, write = Write.NON_NULL)
private String update;
- public UpdateDoc(String update) {
+ public UpdateEntity(String update) {
this.update = update;
}
@@ -55,7 +54,7 @@ public boolean equals(Object obj) {
return false;
if (getClass() != obj.getClass())
return false;
- UpdateDoc other = (UpdateDoc) obj;
+ UpdateEntity other = (UpdateEntity) obj;
return Objects.equals(id, other.id) && Objects.equals(update, other.update);
}
diff --git a/src/main/java/net/dev4any1/tbot/service/BotService.java b/src/main/java/net/dev4any1/tbot/service/BotService.java
index f5252a5..150f31a 100755
--- a/src/main/java/net/dev4any1/tbot/service/BotService.java
+++ b/src/main/java/net/dev4any1/tbot/service/BotService.java
@@ -1,11 +1,7 @@
package net.dev4any1.tbot.service;
import java.time.Duration;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import net.dev4any1.tbot.dao.PollRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,11 +9,11 @@
import org.springframework.stereotype.Service;
import org.telegram.telegrambots.bots.DefaultBotOptions;
import org.telegram.telegrambots.meta.TelegramBotsApi;
-import org.telegram.telegrambots.meta.api.objects.polls.PollOption;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
import net.dev4any1.tbot.bot.Bot;
+import net.dev4any1.tbot.dao.PollRepository;
import net.dev4any1.tbot.dao.UpdateRepository;
@Service
@@ -31,17 +27,9 @@ public class BotService {
@Value("${this.bot.token}")
private String token;
- @Value("${this.bot.list}")
- private String list;
-
- @Value("${this.bot.question}")
- private String question;
-
- @Value("${this.bot.answers}")
- private String answers;
-
@Autowired
- private UpdateRepository upr;
+ private UpdateRepository updateRepository;
+
@Autowired
private PollRepository pollRepository;
@@ -49,7 +37,7 @@ public class BotService {
public void serviceDefault() {
if (bot == null) {
- bot = new Bot(new DefaultBotOptions(), token, name, upr, pollRepository);
+ bot = new Bot(new DefaultBotOptions(), token, name, updateRepository, pollRepository);
}
try {
TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class);
@@ -66,14 +54,4 @@ public void serviceDefault() {
}
log.info("bot is good");
}
-
- public void startPollToList() {
- List gsmNos = Arrays.asList(list.split(" "));
- List options = new ArrayList<>();
- for (String option: Arrays.asList(answers.split(" "))) {
- options.add(new PollOption(option, 0));
- }
-// bot.sendPoll(question, options, gsmNos);
- }
-
}
diff --git a/src/main/java/net/dev4any1/tbot/service/SubscriberService.java b/src/main/java/net/dev4any1/tbot/service/SubscriberService.java
deleted file mode 100755
index 05b0956..0000000
--- a/src/main/java/net/dev4any1/tbot/service/SubscriberService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.dev4any1.tbot.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import net.dev4any1.tbot.dao.SubscriberRepository;
-import net.dev4any1.tbot.model.Subscriber;
-
-@Service
-public class SubscriberService {
-
- @Autowired
- private SubscriberRepository repository;
-
- public Subscriber create(String gsmNo) {
- return repository.save(new Subscriber(gsmNo));
- }
-
- public Subscriber getByGsmNo(String gsmNo) {
- return repository.findByGsmNo(gsmNo);
- }
-}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 621cfc9..712b50d 100755
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,12 +1,9 @@
-#this.bot.name=MeTaCTa3_bot
-this.bot.name=St@tC0m@_bot
-#this.bot.token=5883852415:AAGVuNCtVHjB72z1fVV9I_SnNSBmLFDnPuE
-this.bot.token=6038096570:AAEV1HmYA26_FSW9taeZXjB32dE2P91WtpQ
-this.bot.list=+380663282836 +380674744249
-this.bot.question=wazzup
-this.bot.answers=good fine sad
+this.bot.name=MeTaCTa3_bot
+#this.bot.name=St@tC0m@_bot
+this.bot.token=5883852415:AAGVuNCtVHjB72z1fVV9I_SnNSBmLFDnPuE
+#this.bot.token=6038096570:AAEV1HmYA26_FSW9taeZXjB32dE2P91WtpQ
+
# MongoDB properties
mongo.db.name=tdb
-#mongo.db.url=localhost
-#external Mongo url TODO change test port
+# external Mongo URL. TODO: change from test port
spring.data.mongodb.uri=mongodb://localhost:55777/tdb
\ No newline at end of file
diff --git a/src/test/java/net/dev4any1/tbot/bot/TestHelper.java b/src/test/java/net/dev4any1/tbot/bot/TestHelper.java
deleted file mode 100755
index 0649d4e..0000000
--- a/src/test/java/net/dev4any1/tbot/bot/TestHelper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.dev4any1.tbot.bot;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.util.Collection;
-
-import org.junit.jupiter.api.Test;
-
-public class TestHelper {
-
- @Test
- public void testHelperSearcher() {
- String query = "where is the most tasty fish?";
- Collection result = Helper.Searcher.search(query, 2);
- assertTrue(result.size() == 2);
- }
-}
diff --git a/src/test/java/net/dev4any1/tbot/repository/PollRepositoryTest.java b/src/test/java/net/dev4any1/tbot/repository/PollRepositoryTest.java
new file mode 100755
index 0000000..e72f6e5
--- /dev/null
+++ b/src/test/java/net/dev4any1/tbot/repository/PollRepositoryTest.java
@@ -0,0 +1,37 @@
+package net.dev4any1.tbot.repository;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.List;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+import net.dev4any1.tbot.TestMongoConfig;
+import net.dev4any1.tbot.dao.PollRepository;
+import net.dev4any1.tbot.model.PollUpdateEntity;
+
+@SpringBootTest(classes = { PollRepository.class })
+@ExtendWith(SpringExtension.class)
+@Import({ TestMongoConfig.class })
+
+public class PollRepositoryTest {
+
+ @Autowired
+ PollRepository repo;
+
+ @Test
+ public void tesCreateAndGet() throws Exception {
+ PollUpdateEntity puePersisted = repo.save(new PollUpdateEntity("test-poll-id", "test-poll"));
+ List pueReturned = repo.findByPollId("test-poll-id");
+ assertTrue(!pueReturned.isEmpty());
+ assertEquals(pueReturned.size(), 1);
+ assertEquals(puePersisted, pueReturned.get(0));
+ repo.deleteAll();
+ }
+}
diff --git a/src/test/java/net/dev4any1/tbot/service/SubscriberServiceTest.java b/src/test/java/net/dev4any1/tbot/service/SubscriberServiceTest.java
deleted file mode 100755
index 26d1335..0000000
--- a/src/test/java/net/dev4any1/tbot/service/SubscriberServiceTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package net.dev4any1.tbot.service;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-import net.dev4any1.tbot.TestMongoConfig;
-import net.dev4any1.tbot.model.Subscriber;
-
-@SpringBootTest(classes = { SubscriberService.class })
-@ExtendWith(SpringExtension.class)
-@Import({ TestMongoConfig.class })
-
-public class SubscriberServiceTest {
-
- @Autowired
- SubscriberService service;
-
- @Test
- public void tesCreateAndGet() throws Exception {
- final String gsmN = "0123456789";
- Subscriber sub1 = service.create(gsmN);
- Subscriber sub2 = service.getByGsmNo(gsmN);
- assertEquals(sub1, sub2);
- }
-}