blob: ac08a7a01add32354ce3bf662873736665a9cd3e [file] [log] [blame]
/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.pulsar.manager.dao;
import com.github.pagehelper.Page;
import org.apache.pulsar.manager.PulsarManagerApplication;
import org.apache.pulsar.manager.entity.UserInfoEntity;
import org.apache.pulsar.manager.entity.UsersRepository;
import org.apache.pulsar.manager.profiles.HerdDBTestProfile;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Optional;
@RunWith(SpringRunner.class)
@SpringBootTest(
classes = {
PulsarManagerApplication.class,
HerdDBTestProfile.class
}
)
@ActiveProfiles("test")
public class UsersRepositoryImplTest {
@Autowired
private UsersRepository usersRepository;
private void initUser(UserInfoEntity userInfoEntity) {
userInfoEntity.setAccessToken("test-access-token");
userInfoEntity.setEmail("test@apache.org");
userInfoEntity.setLocation("bj");
userInfoEntity.setDescription("test-description");
userInfoEntity.setName("test-user");
userInfoEntity.setExpire(157900045678l);
userInfoEntity.setPhoneNumber("1356789023456");
}
private void validateUser(UserInfoEntity user) {
Assert.assertEquals(user.getName(), "test-user");
Assert.assertEquals(user.getExpire(), 157900045678l);
Assert.assertEquals(user.getPhoneNumber(), "1356789023456");
Assert.assertEquals(user.getDescription(), "test-description");
Assert.assertEquals(user.getLocation(), "bj");
Assert.assertEquals(user.getEmail(), "test@apache.org");
Assert.assertEquals(user.getAccessToken(), "test-access-token");
}
@Test
public void getUsersListTest() {
UserInfoEntity userInfoEntity = new UserInfoEntity();
initUser(userInfoEntity);
usersRepository.save(userInfoEntity);
Page<UserInfoEntity> userInfoEntities = usersRepository.findUsersList(1, 10);
userInfoEntities.count(true);
userInfoEntities.getResult().forEach((user) -> {
validateUser(user);
usersRepository.delete(user.getName());
});
}
@Test
public void getAndUpdateUserTest() {
UserInfoEntity userInfoEntity = new UserInfoEntity();
initUser(userInfoEntity);
usersRepository.save(userInfoEntity);
Optional<UserInfoEntity> userInfoEntityOptional = usersRepository.findByUserName(userInfoEntity.getName());
UserInfoEntity getUserInfoEntity = userInfoEntityOptional.get();
validateUser(getUserInfoEntity);
userInfoEntity.setPhoneNumber("1356789023456");
userInfoEntity.setEmail("test2@apache.org");
usersRepository.update(userInfoEntity);
userInfoEntityOptional = usersRepository.findByUserName(userInfoEntity.getName());
UserInfoEntity updateUserInfoEntity = userInfoEntityOptional.get();
Assert.assertEquals(updateUserInfoEntity.getPhoneNumber(), "1356789023456");
Assert.assertEquals(updateUserInfoEntity.getEmail(), "test2@apache.org");
usersRepository.delete(updateUserInfoEntity.getName());
userInfoEntityOptional = usersRepository.findByUserName(userInfoEntity.getName());
Assert.assertFalse(userInfoEntityOptional.isPresent());
}
}