<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
-->

<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">

    <simple-method method-name="testCreateUserLogin" short-description="Test case for service createUserLogin" login-required="false">
        <set field="userLoginId" value="demo.person"/>
        <set field="serviceCtx.userLoginId" from-field="userLoginId"/>
        <set field="serviceCtx.enabled" value="Y"/>
        <set field="serviceCtx.currentPassword" value="ofbiz"/>
        <set field="serviceCtx.currentPasswordVerify" value="ofbiz"/>
        <call-service service-name="createUserLogin" in-map-name="serviceCtx"/>
        <entity-one entity-name="UserLogin" value-field="userLogin"/>
        <assert>
            <not><if-empty field="userLogin"/></not>
            <if-compare field="userLogin.enabled" operator="equals" value="Y"/>
        </assert>
        <check-errors/>
    </simple-method>
</simple-methods>
