Index: D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productdefinition/business/PrdOfferingBO.hbm.xml
===================================================================
--- D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productdefinition/business/PrdOfferingBO.hbm.xml	(revision 12273)
+++ D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productdefinition/business/PrdOfferingBO.hbm.xml	(working copy)
@@ -312,6 +312,7 @@
 		select prdMixBO.prdOfferingId.prdOfferingId 
 		from org.mifos.application.productsmix.business.ProductMixBO prdMixBO
 		where prdMixBO.prdOfferingNotAllowedId.prdOfferingId=:prdOfferingId)
+		order by prdOff.prdOfferingName
 		]]><!-- verifier les cas particulier -->
 	</query>
 	<query name="product.notallowedproductofferingbytype">
@@ -322,6 +323,7 @@
 		OR prdOff.prdOfferingId in (select prdMixBO.prdOfferingId.prdOfferingId 
 		from org.mifos.application.productsmix.business.ProductMixBO prdMixBO
 		where prdMixBO.prdOfferingNotAllowedId.prdOfferingId=:prdOfferingId)
+		order by prdOff.prdOfferingName
 		]]><!-- verifier les cas particulier -->
 	</query>
 	<query name="product.allowedproductformixproduct">
Index: D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/test/org/mifos/application/productsmix/business/service/ProductMixBusinessServiceTest.java
===================================================================
--- D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/test/org/mifos/application/productsmix/business/service/ProductMixBusinessServiceTest.java	(revision 12273)
+++ D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/test/org/mifos/application/productsmix/business/service/ProductMixBusinessServiceTest.java	(working copy)
@@ -10,8 +10,10 @@
 import org.mifos.application.customer.center.business.CenterBO;
 import org.mifos.application.meeting.business.MeetingBO;
 import org.mifos.application.productdefinition.business.LoanOfferingBO;
+import org.mifos.application.productdefinition.business.PrdOfferingBO;
 import org.mifos.application.productdefinition.business.SavingsOfferingBO;
 import org.mifos.application.productdefinition.util.helpers.ProductType;
+import org.mifos.application.productsmix.business.ProductMixBO;
 import org.mifos.framework.MifosTestCase;
 import org.mifos.framework.business.service.ServiceFactory;
 import org.mifos.framework.exceptions.ServiceException;
@@ -23,12 +25,17 @@
 public class ProductMixBusinessServiceTest  extends MifosTestCase {
 	
 	private SavingsOfferingBO savingsOffering;
+	private SavingsOfferingBO secondSavingsOffering;
 	private LoanOfferingBO loanOffering;
 	private CustomerBO center;	
+	private CustomerBO center2;	
 	private ProductMixBusinessService service;
 	MeetingBO meetingIntPost;
 	MeetingBO meetingIntCalc;
-	
+	MeetingBO meetingIntPost2;
+	MeetingBO meetingIntCalc2;
+	ProductMixBO prdmix;
+	ProductMixBO prdmix2;
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
@@ -39,9 +46,14 @@
 
 	@Override
 	protected void tearDown() throws Exception {
+		TestObjectFactory.removeObject(prdmix);	
+		TestObjectFactory.removeObject(prdmix2);	
 		TestObjectFactory.removeObject(loanOffering);
 		TestObjectFactory.removeObject(savingsOffering);
+		TestObjectFactory.removeObject(secondSavingsOffering);
 		TestObjectFactory.cleanUp(center);
+		TestObjectFactory.cleanUp(center2);
+		
 		HibernateUtil.closeSession();
 		super.tearDown();
 	}
@@ -72,9 +84,25 @@
 	
 	
 	public void testGetAllowedPrdOfferingsByType() throws ServiceException {
-		assertEquals(1, service.getAllowedPrdOfferingsByType(
+		createSecondSavingProduct();
+		assertEquals(2, service.getAllowedPrdOfferingsByType(
 				savingsOffering.getPrdOfferingId().toString(),
 				ProductType.SAVINGS.getValue().toString()).size());
+
+		assertEquals("A_SavingPrd", service.getAllowedPrdOfferingsByType(
+				savingsOffering.getPrdOfferingId().toString(),
+				ProductType.SAVINGS.getValue().toString()).get(0)
+				.getPrdOfferingName());
+
+		assertTrue("Savings products should be in alphabitical order:",
+				(service.getAllowedPrdOfferingsByType(
+						savingsOffering.getPrdOfferingId().toString(),
+						ProductType.SAVINGS.getValue().toString()).get(0)
+						.getPrdOfferingName().compareToIgnoreCase(service
+						.getAllowedPrdOfferingsByType(
+								savingsOffering.getPrdOfferingId().toString(),
+								ProductType.SAVINGS.getValue().toString()).get(
+								1).getPrdOfferingName())) < 0);
 		HibernateUtil.closeSession();
 
 	}
@@ -90,10 +118,27 @@
 	
 	
 	public void testGetNotAllowedPrdOfferingsByType_success() throws ServiceException {
-		assertEquals(0, service.getNotAllowedPrdOfferingsByType(savingsOffering.getPrdOfferingId().toString()).size());
+		createSecondSavingProduct();
+		prdmix2=createNotAllowedProductForAProductOffering(savingsOffering,savingsOffering);
+		prdmix=createNotAllowedProductForAProductOffering(savingsOffering,secondSavingsOffering);
+		
+		assertEquals(2, service.getNotAllowedPrdOfferingsByType(savingsOffering.getPrdOfferingId().toString()).size());
+		
+		assertTrue("Savings products should be in alphabitical order:",
+				(service.getNotAllowedPrdOfferingsByType(savingsOffering.getPrdOfferingId().toString()).get(0)
+						.getPrdOfferingName().compareToIgnoreCase(service
+						.getNotAllowedPrdOfferingsByType(savingsOffering.getPrdOfferingId().toString()).get(
+								1).getPrdOfferingName())) < 0);
+
 		HibernateUtil.closeSession();
 	}
 
+	private  ProductMixBO createNotAllowedProductForAProductOffering(PrdOfferingBO prdOffering,PrdOfferingBO prdOfferingNotAllowedId)
+	{
+		return TestObjectFactory.createNotAllowedProductForAProductOffering(prdOffering,prdOfferingNotAllowedId);
+		
+	}
+	
 	private CenterBO createCenter() {
 		return createCenter("Center_Active_test");
 	}
@@ -119,5 +164,20 @@
 			meetingIntCalc, meetingIntPost);
 
 	}
+	private void createSecondSavingProduct() {
+		Date startDate = new Date(System.currentTimeMillis());
+		meetingIntCalc2 = TestObjectFactory.createMeeting(TestObjectFactory
+				.getNewMeetingForToday(WEEKLY, EVERY_WEEK, CUSTOMER_MEETING));
+		meetingIntPost2 = TestObjectFactory.createMeeting(TestObjectFactory
+				.getNewMeetingForToday(WEEKLY, EVERY_WEEK, CUSTOMER_MEETING));
 
+		center2 = createCenter("Center_Active_test2");
+
+		secondSavingsOffering =
+			TestObjectFactory.createSavingsProduct("A_SavingPrd", "AS",
+				startDate,
+				meetingIntCalc2, meetingIntPost2);
+
+		}
+
 }