/**
* Copyright (c) 2009--2015 Red Hat, Inc.
*
* This software is licensed to you under the GNU General Public License,
* version 2 (GPLv2). There is NO WARRANTY for this software, express or
* implied, including the implied warranties of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
* along with this software; if not, see
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
*
* Red Hat trademarks are not licensed under GPLv2. No permission is
* granted to use or replicate Red Hat trademarks that are incorporated
* in this software or its documentation.
*/
package com.redhat.rhn.frontend.events.test;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Vector;
import com.mockobjects.servlet.MockHttpServletRequest;
import com.mockobjects.servlet.MockHttpSession;
import com.redhat.rhn.common.messaging.Mail;
import com.redhat.rhn.common.messaging.test.MockMail;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.events.NewUserAction;
import com.redhat.rhn.frontend.events.NewUserEvent;
import com.redhat.rhn.testing.RhnBaseTestCase;
import com.redhat.rhn.testing.UserTestUtils;
/**
* Test for NewUserEvent
* @version $Rev: 59477 $
*/
public class NewUserEventTest extends RhnBaseTestCase {
private MockMail mailer;
@Override
public void setUp() throws Exception {
super.setUp();
mailer = new MockMail();
}
/**
* test that makes sure we can instantiate the service
*/
public void testToText() {
NewUserEvent evt = createTestEvent();
String eventText = evt.toText();
System.out.println(eventText);
assertNotNull(eventText);
assertContains(eventText, "A Red Hat login has been created for you");
assertContains(eventText,
"Red Hat login, in combination with an active Red Hat subscription,");
assertContains(eventText, "e-mail: redhatJavaTest@redhat.com");
}
public void testAction() {
NewUserEvent evt = createTestEvent();
mailer.setExpectedSendCount(2);
NewUserAction action = new NewUserAction() {
@Override
protected Mail getMail() {
return mailer;
}
};
action.execute(evt);
mailer.verify();
assertContains(mailer.getSubject(), "Spacewalk User Created: testUser");
assertContains(mailer.getBody(),
"someserver.rhndev.redhat.com/rhn/users/ActiveList.do");
assertTrue(mailer.getBody().contains("Your Spacewalk login: testUser") ||
mailer.getBody().contains("Your RHN login: testUser"));
assertTrue(mailer.getBody().contains("Your Spacewalk email address: " +
"redhatJavaTest@redhat.com") ||
mailer.getBody().contains("Your RHN email address: " +
"redhatJavaTest@redhat.com"));
}
private NewUserEvent createTestEvent() {
NewUserEvent evt = new NewUserEvent();
// In the implementation we use getHeaderNames so we override it with
// one that returns an empty implementation.
MockHttpServletRequest request = new MockHttpServletRequest() {
@Override
public Enumeration<String> getHeaderNames() {
return new Vector<String>().elements();
}
};
request.setSession(new MockHttpSession());
request.setupGetRequestURI("http://localhost:8080");
request.setupGetMethod("POST");
User usr = UserTestUtils.findNewUser("testUser",
"testOrg" + this.getClass().getSimpleName());
evt.setUser(usr);
evt.setDomain("someserver.rhndev.redhat.com");
evt.setAdmins(createAdmins());
evt.setRequest(request);
return evt;
}
private List<User> createAdmins() {
User adminOne = UserTestUtils.findNewUser("testUserOne", "testOrgOne", true);
User adminTwo = UserTestUtils.findNewUser("testUserTwo", "testOrgTwo", true);
List<User> admins = new ArrayList<User>();
admins.add(adminOne);
admins.add(adminTwo);
return admins;
}
}